/*
 ResponsiveVoice JS v1.8.3

 (c) 2015-2022 LearnBrite

 License: https://responsivevoice.org/license
*/
var $jscomp = $jscomp || {};
$jscomp.scope = {};
$jscomp.arrayIteratorImpl = function (f) {
  var k = 0;
  return function () {
    return k < f.length ? { done: !1, value: f[k++] } : { done: !0 };
  };
};
$jscomp.arrayIterator = function (f) {
  return { next: $jscomp.arrayIteratorImpl(f) };
};
$jscomp.ASSUME_ES5 = !1;
$jscomp.ASSUME_NO_NATIVE_MAP = !1;
$jscomp.ASSUME_NO_NATIVE_SET = !1;
$jscomp.SIMPLE_FROUND_POLYFILL = !1;
$jscomp.ISOLATE_POLYFILLS = !1;
$jscomp.FORCE_POLYFILL_PROMISE = !1;
$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION = !1;
$jscomp.defineProperty =
  $jscomp.ASSUME_ES5 || "function" == typeof Object.defineProperties
    ? Object.defineProperty
    : function (f, k, m) {
        if (f == Array.prototype || f == Object.prototype) return f;
        f[k] = m.value;
        return f;
      };
$jscomp.getGlobal = function (f) {
  f = [
    "object" == typeof globalThis && globalThis,
    f,
    "object" == typeof window && window,
    "object" == typeof self && self,
    "object" == typeof global && global,
  ];
  for (var k = 0; k < f.length; ++k) {
    var m = f[k];
    if (m && m.Math == Math) return m;
  }
  throw Error("Cannot find global object");
};
$jscomp.global = $jscomp.getGlobal(this);
$jscomp.IS_SYMBOL_NATIVE =
  "function" === typeof Symbol && "symbol" === typeof Symbol("x");
$jscomp.TRUST_ES6_POLYFILLS =
  !$jscomp.ISOLATE_POLYFILLS || $jscomp.IS_SYMBOL_NATIVE;
$jscomp.polyfills = {};
$jscomp.propertyToPolyfillSymbol = {};
$jscomp.POLYFILL_PREFIX = "$jscp$";
var $jscomp$lookupPolyfilledValue = function (f, k) {
  var m = $jscomp.propertyToPolyfillSymbol[k];
  if (null == m) return f[k];
  m = f[m];
  return void 0 !== m ? m : f[k];
};
$jscomp.polyfill = function (f, k, m, l) {
  k &&
    ($jscomp.ISOLATE_POLYFILLS
      ? $jscomp.polyfillIsolated(f, k, m, l)
      : $jscomp.polyfillUnisolated(f, k, m, l));
};
$jscomp.polyfillUnisolated = function (f, k, m, l) {
  m = $jscomp.global;
  f = f.split(".");
  for (l = 0; l < f.length - 1; l++) {
    var a = f[l];
    if (!(a in m)) return;
    m = m[a];
  }
  f = f[f.length - 1];
  l = m[f];
  k = k(l);
  k != l &&
    null != k &&
    $jscomp.defineProperty(m, f, { configurable: !0, writable: !0, value: k });
};
$jscomp.polyfillIsolated = function (f, k, m, l) {
  var a = f.split(".");
  f = 1 === a.length;
  l = a[0];
  l = !f && l in $jscomp.polyfills ? $jscomp.polyfills : $jscomp.global;
  for (var q = 0; q < a.length - 1; q++) {
    var z = a[q];
    if (!(z in l)) return;
    l = l[z];
  }
  a = a[a.length - 1];
  m = $jscomp.IS_SYMBOL_NATIVE && "es6" === m ? l[a] : null;
  k = k(m);
  null != k &&
    (f
      ? $jscomp.defineProperty($jscomp.polyfills, a, {
          configurable: !0,
          writable: !0,
          value: k,
        })
      : k !== m &&
        (void 0 === $jscomp.propertyToPolyfillSymbol[a] &&
          ((m = (1e9 * Math.random()) >>> 0),
          ($jscomp.propertyToPolyfillSymbol[a] = $jscomp.IS_SYMBOL_NATIVE
            ? $jscomp.global.Symbol(a)
            : $jscomp.POLYFILL_PREFIX + m + "$" + a)),
        $jscomp.defineProperty(l, $jscomp.propertyToPolyfillSymbol[a], {
          configurable: !0,
          writable: !0,
          value: k,
        })));
};
$jscomp.initSymbol = function () {};
$jscomp.polyfill(
  "Symbol",
  function (f) {
    if (f) return f;
    var k = function (q, z) {
      this.$jscomp$symbol$id_ = q;
      $jscomp.defineProperty(this, "description", {
        configurable: !0,
        writable: !0,
        value: z,
      });
    };
    k.prototype.toString = function () {
      return this.$jscomp$symbol$id_;
    };
    var m = "jscomp_symbol_" + ((1e9 * Math.random()) >>> 0) + "_",
      l = 0,
      a = function (q) {
        if (this instanceof a)
          throw new TypeError("Symbol is not a constructor");
        return new k(m + (q || "") + "_" + l++, q);
      };
    return a;
  },
  "es6",
  "es3"
);
$jscomp.polyfill(
  "Symbol.iterator",
  function (f) {
    if (f) return f;
    f = Symbol("Symbol.iterator");
    for (
      var k =
          "Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(
            " "
          ),
        m = 0;
      m < k.length;
      m++
    ) {
      var l = $jscomp.global[k[m]];
      "function" === typeof l &&
        "function" != typeof l.prototype[f] &&
        $jscomp.defineProperty(l.prototype, f, {
          configurable: !0,
          writable: !0,
          value: function () {
            return $jscomp.iteratorPrototype($jscomp.arrayIteratorImpl(this));
          },
        });
    }
    return f;
  },
  "es6",
  "es3"
);
$jscomp.iteratorPrototype = function (f) {
  f = { next: f };
  f[Symbol.iterator] = function () {
    return this;
  };
  return f;
};
Array.from ||
  (Array.from = (function () {
    var f = Object.prototype.toString,
      k = function (l) {
        return "function" === typeof l || "[object Function]" === f.call(l);
      },
      m = Math.pow(2, 53) - 1;
    return function (l) {
      var a = Object(l);
      if (null == l)
        throw new TypeError(
          "Array.from requires an array-like object - not null or undefined"
        );
      var q = 1 < arguments.length ? arguments[1] : void 0,
        z;
      if ("undefined" !== typeof q) {
        if (!k(q))
          throw new TypeError(
            "Array.from: when provided, the second argument must be a function"
          );
        2 < arguments.length && (z = arguments[2]);
      }
      var w = Number(a.length);
      w = isNaN(w)
        ? 0
        : 0 !== w && isFinite(w)
        ? (0 < w ? 1 : -1) * Math.floor(Math.abs(w))
        : w;
      w = Math.min(Math.max(w, 0), m);
      for (var b = k(this) ? Object(new this(w)) : Array(w), c = 0, d; c < w; )
        (d = a[c]),
          (b[c] = q
            ? "undefined" === typeof z
              ? q(d, c)
              : q.call(z, d, c)
            : d),
          (c += 1);
      b.length = w;
      return b;
    };
  })());
if (!isNaN)
  var isNaN = function (f) {
    f = Number(f);
    return f !== f;
  };
(function (f, k) {
  "object" === typeof exports && "undefined" !== typeof module
    ? k()
    : "function" === typeof define && define.amd
    ? define(k)
    : k();
})(this, function () {
  function f(m) {
    f =
      "function" === typeof Symbol && "symbol" === typeof Symbol.iterator
        ? function (l) {
            return typeof l;
          }
        : function (l) {
            return l &&
              "function" === typeof Symbol &&
              l.constructor === Symbol &&
              l !== Symbol.prototype
              ? "symbol"
              : typeof l;
          };
    return f(m);
  }
  function k(m, l) {
    var a = this.event && this.event.type;
    a = "unload" === a || "beforeunload" === a;
    var q =
      "XMLHttpRequest" in this
        ? new XMLHttpRequest()
        : new ActiveXObject("Microsoft.XMLHTTP");
    q.open("POST", m, !a);
    q.withCredentials = !0;
    q.setRequestHeader("Accept", "*/*");
    "string" === typeof l
      ? (q.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"),
        (q.responseType = "text"))
      : l instanceof Blob &&
        l.type &&
        q.setRequestHeader("Content-Type", l.type);
    try {
      q.send(l);
    } catch (z) {
      return !1;
    }
    return !0;
  }
  (function () {
    "navigator" in this || (this.navigator = {});
    "function" !== typeof this.navigator.sendBeacon &&
      (this.navigator.sendBeacon = k.bind(this));
  }.call(
    "object" === ("undefined" === typeof window ? "undefined" : f(window))
      ? window
      : {}
  ));
});
if ("undefined" != typeof responsiveVoice)
  console.log("ResponsiveVoice already loaded"), console.log(responsiveVoice);
else
  var ResponsiveVoice = function () {
      function f(b) {
        b = b.replace(/([\n\r])+/gm, "\n");
        for (
          var c = /([,.:!\u00a1?\u00bf;()\[\]\u2014\u00ab\u00bb])+[\n\r]/gm,
            d = !0;
          d;

        )
          null === b.match(c) ? (d = !1) : (b = b.replace(c, "$1 "));
        return b;
      }
      function k(b, c) {
        if (!q) return b;
        console.log(c);
        var d = b;
        try {
          for (var e = 0; e < q.length; e++) {
            var n = q[e],
              g = !1,
              h = n.collectionvoices;
            h
              ? (Array.isArray(h) || (h = [h]),
                c.collectionvoice &&
                  c.collectionvoice.name &&
                  -1 != h.indexOf(c.collectionvoice.name) &&
                  (g = !0))
              : (g = !0);
            var r = !1,
              p = n.systemvoices;
            p
              ? (Array.isArray(p) || (p = [p]),
                c.systemvoice &&
                  c.systemvoice.name &&
                  -1 != p.indexOf(c.systemvoice.name) &&
                  (r = !0))
              : (r = !0);
            (null == h || (null != h && g)) &&
              (null == p || (null != p && r)) &&
              (d = d.replace(n.searchvalue, n.newvalue));
          }
          return d;
        } catch (u) {
          return (
            console.warn(
              "ResponsiveVoice: There was an error while processing the textReplacements array"
            ),
            b
          );
        }
      }
      function m() {
        var b = document.getElementsByTagName("script"),
          c;
        for (c = 0; c < b.length; ++c)
          if (b[c].src && w.test(b[c].src)) {
            var d = b[c].src;
            var e = document.createElement("a");
            var n = {};
            e.href = d;
            if (e.search) {
              var g = e.search.replace(/^\?/, "").split("&");
              for (d = 0; d < g.length; d++)
                (e = g[d].split("=")), (n[e[0]] = e[1]);
              n = n.source ? n.source : !1;
            } else n = !1;
            if (n && "wp-plugin" == n) return (w.lastIndex = 0), !0;
          }
        return !1;
      }
      function l() {
        var b = document.getElementsByTagName("script"),
          c;
        for (c = 0; c < b.length; ++c)
          if (b[c].src && w.test(b[c].src)) return (w.lastIndex = 0), !1;
        return !0;
      }
      var a = this;
      a.version = "1.8.3";
      console.log("ResponsiveVoice r" + a.version);
      a.responsivevoices = [
        {
          name: "UK English Female",
          flag: "gb",
          gender: "f",
          lang: "en-GB",
          voiceIDs: [
            3, 7, 171, 201, 5, 1, 528, 257, 286, 342, 258, 287, 343, 8,
          ],
        },
        {
          name: "UK English Male",
          flag: "gb",
          gender: "m",
          lang: "en-GB",
          voiceIDs: [0, 277, 202, 75, 4, 2, 256, 285, 341, 159],
        },
        {
          name: "US English Female",
          flag: "us",
          gender: "f",
          lang: "en-US",
          voiceIDs: [
            432, 433, 434, 40, 41, 42, 383, 205, 204, 43, 481, 173, 235, 283,
            339, 408, 44,
          ],
        },
        {
          name: "US English Male",
          flag: "us",
          gender: "m",
          lang: "en-US",
          voiceIDs: [
            431, 39, 234, 282, 338, 236, 284, 340, 2, 4, 0, 75, 195, 169,
          ],
        },
        {
          name: "Arabic Male",
          flag: "ar",
          gender: "m",
          lang: "ar-SA",
          voiceIDs: [96, 95, 97, 196, 388],
        },
        {
          name: "Arabic Female",
          flag: "ar",
          gender: "f",
          lang: "ar-SA",
          voiceIDs: [483, 98],
        },
        {
          name: "Armenian Male",
          flag: "hy",
          gender: "f",
          lang: "hy-AM",
          voiceIDs: [99],
        },
        {
          name: "Australian Female",
          flag: "au",
          gender: "f",
          lang: "en-AU",
          voiceIDs: [495, 415, 276, 201, 87, 5, 88],
        },
        {
          name: "Australian Male",
          flag: "au",
          gender: "m",
          lang: "en-AU",
          voiceIDs: [86, 386],
        },
        {
          name: "Bangla Bangladesh Female",
          flag: "bd",
          gender: "f",
          lang: "bn-BD",
          voiceIDs: [435],
        },
        {
          name: "Bangla Bangladesh Male",
          flag: "bd",
          gender: "m",
          lang: "bn-BD",
          voiceIDs: [485, 410, 436],
        },
        {
          name: "Bangla India Female",
          flag: "bd",
          gender: "f",
          lang: "bn-IN",
          voiceIDs: [447],
        },
        {
          name: "Bangla India Male",
          flag: "bd",
          gender: "m",
          lang: "bn-IN",
          voiceIDs: [492, 411, 448],
        },
        {
          name: "Brazilian Portuguese Female",
          flag: "br",
          gender: "f",
          lang: "pt-BR",
          voiceIDs: [245, 124, 123, 125, 499, 186, 223, 126],
        },
        {
          name: "Brazilian Portuguese Male",
          flag: "br",
          gender: "m",
          lang: "pt-BR",
          voiceIDs: [315, 332, 371, 399],
          deprecated: !0,
        },
        {
          name: "Chinese Female",
          flag: "cn",
          gender: "f",
          lang: "zh-CN",
          voiceIDs: [
            249, 58, 59, 452, 380, 281, 231, 155, 60, 513, 191, 268, 297, 353,
            269, 298, 354, 409, 61,
          ],
        },
        {
          name: "Chinese Male",
          flag: "cn",
          gender: "m",
          lang: "zh-CN",
          voiceIDs: [317, 334, 373, 389],
        },
        {
          name: "Chinese (Hong Kong) Female",
          flag: "hk",
          gender: "f",
          lang: "zh-HK",
          voiceIDs: [
            463, 464, 192, 193, 232, 250, 251, 270, 299, 355, 409, 444, 252,
          ],
        },
        {
          name: "Chinese (Hong Kong) Male",
          flag: "hk",
          gender: "m",
          lang: "zh-HK",
          voiceIDs: [430, 318, 335, 374, 445, 390],
        },
        {
          name: "Chinese Taiwan Female",
          flag: "tw",
          gender: "f",
          lang: "zh-TW",
          voiceIDs: [
            469, 194, 233, 253, 254, 305, 322, 361, 384, 319, 336, 375, 409,
            255,
          ],
        },
        {
          name: "Chinese Taiwan Male",
          flag: "tw",
          gender: "m",
          lang: "zh-TW",
          voiceIDs: [320, 337, 376, 391],
        },
        {
          name: "Czech Female",
          flag: "cz",
          gender: "f",
          lang: "cs-CZ",
          voiceIDs: [504, 412, 101, 100, 102, 197, 103],
        },
        {
          name: "Czech Male",
          flag: "cz",
          gender: "m",
          lang: "cs-CZ",
          voiceIDs: [161],
          deprecated: !0,
        },
        {
          name: "Danish Female",
          flag: "dk",
          gender: "f",
          lang: "da-DK",
          voiceIDs: [474, 413, 105, 104, 106, 198, 107],
        },
        {
          name: "Danish Male",
          flag: "da",
          gender: "m",
          lang: "da-DK",
          voiceIDs: [162],
          deprecated: !0,
        },
        {
          name: "Deutsch Female",
          flag: "de",
          gender: "f",
          lang: "de-DE",
          voiceIDs: [
            27, 28, 29, 30, 78, 170, 275, 199, 31, 502, 261, 290, 346, 262, 291,
            347, 32,
          ],
        },
        {
          name: "Deutsch Male",
          flag: "de",
          gender: "m",
          lang: "de-DE",
          voiceIDs: [307, 324, 363, 377, 393],
        },
        {
          name: "Dutch Female",
          flag: "nl",
          gender: "f",
          lang: "nl-NL",
          voiceIDs: [243, 219, 84, 157, 158, 496, 184, 45],
        },
        {
          name: "Dutch Male",
          flag: "nl",
          gender: "m",
          lang: "nl-NL",
          voiceIDs: [157, 220, 407],
        },
        {
          name: "Estonian Male",
          flag: "ee",
          gender: "m",
          lang: "et-EE",
          voiceIDs: [476, 416, 446],
        },
        {
          name: "Filipino Female",
          flag: "ph",
          gender: "f",
          lang: "fil-PH",
          voiceIDs: [507, 418, 437],
        },
        {
          name: "Finnish Female",
          flag: "fi",
          gender: "f",
          lang: "fi-FI",
          voiceIDs: [490, 417, 90, 89, 91, 209, 92],
        },
        {
          name: "Finnish Male",
          flag: "fi",
          gender: "m",
          lang: "fi-FI",
          voiceIDs: [160],
          deprecated: !0,
        },
        {
          name: "French Female",
          flag: "fr",
          gender: "f",
          lang: "fr-FR",
          voiceIDs: [
            240, 21, 22, 23, 77, 178, 279, 210, 493, 266, 295, 351, 304, 321,
            360, 26,
          ],
        },
        {
          name: "French Male",
          flag: "fr",
          gender: "m",
          lang: "fr-FR",
          voiceIDs: [311, 328, 367, 378, 392],
        },
        {
          name: "French Canadian Female",
          flag: "ca",
          gender: "f",
          lang: "fr-CA",
          voiceIDs: [497, 419, 210, 449],
        },
        {
          name: "French Canadian Male",
          flag: "ca",
          gender: "m",
          lang: "fr-CA",
          voiceIDs: [450],
        },
        {
          name: "Greek Female",
          flag: "gr",
          gender: "f",
          lang: "el-GR",
          voiceIDs: [488, 414, 62, 63, 80, 200, 64],
        },
        {
          name: "Greek Male",
          flag: "gr",
          gender: "m",
          lang: "el-GR",
          voiceIDs: [163],
          deprecated: !0,
        },
        {
          name: "Hindi Female",
          flag: "hi",
          gender: "f",
          lang: "hi-IN",
          voiceIDs: [247, 66, 154, 179, 213, 489, 259, 288, 344, 67],
        },
        {
          name: "Hindi Male",
          flag: "hi",
          gender: "m",
          lang: "hi-IN",
          voiceIDs: [394],
        },
        {
          name: "Hungarian Female",
          flag: "hu",
          gender: "f",
          lang: "hu-HU",
          voiceIDs: [470, 420, 9, 10, 81, 214, 11],
        },
        {
          name: "Hungarian Male",
          flag: "hu",
          gender: "m",
          lang: "hu-HU",
          voiceIDs: [164],
          deprecated: !0,
        },
        {
          name: "Indonesian Female",
          flag: "id",
          gender: "f",
          lang: "id-ID",
          voiceIDs: [241, 111, 112, 524, 180, 215, 113],
        },
        {
          name: "Indonesian Male",
          flag: "id",
          gender: "m",
          lang: "id-ID",
          voiceIDs: [395],
        },
        {
          name: "Italian Female",
          flag: "it",
          gender: "f",
          lang: "it-IT",
          voiceIDs: [
            242, 33, 34, 35, 36, 37, 79, 181, 216, 508, 271, 300, 356, 38,
          ],
        },
        {
          name: "Italian Male",
          flag: "it",
          gender: "m",
          lang: "it-IT",
          voiceIDs: [312, 329, 368, 406],
        },
        {
          name: "Japanese Female",
          flag: "jp",
          gender: "f",
          lang: "ja-JP",
          voiceIDs: [
            51, 280, 217, 52, 153, 517, 182, 273, 302, 358, 274, 303, 359, 53,
          ],
        },
        {
          name: "Japanese Male",
          flag: "jp",
          gender: "m",
          lang: "ja-JP",
          voiceIDs: [248, 50, 313, 330, 369, 396],
        },
        {
          name: "Korean Female",
          flag: "kr",
          gender: "f",
          lang: "ko-KR",
          voiceIDs: [54, 55, 56, 156, 183, 218, 466, 306, 323, 362, 384, 57],
        },
        {
          name: "Korean Male",
          flag: "kr",
          gender: "m",
          lang: "ko-KR",
          voiceIDs: [397],
        },
        {
          name: "Latin Female",
          flag: "va",
          gender: "f",
          lang: "la",
          voiceIDs: [114],
          deprecated: !0,
        },
        {
          name: "Latin Male",
          flag: "va",
          gender: "m",
          lang: "la",
          voiceIDs: [165],
        },
        {
          name: "Nepali",
          flag: "np",
          gender: "f",
          lang: "ne-NP",
          voiceIDs: [509, 423, 441],
        },
        {
          name: "Norwegian Female",
          flag: "no",
          gender: "f",
          lang: "nb-NO",
          voiceIDs: [473, 422, 72, 73, 221, 74],
        },
        {
          name: "Norwegian Male",
          flag: "no",
          gender: "m",
          lang: "nb-NO",
          voiceIDs: [166],
        },
        {
          name: "Polish Female",
          flag: "pl",
          gender: "f",
          lang: "pl-PL",
          voiceIDs: [244, 120, 119, 121, 185, 222, 505, 267, 296, 352, 122],
        },
        {
          name: "Polish Male",
          flag: "pl",
          gender: "m",
          lang: "pl-PL",
          voiceIDs: [314, 331, 370, 398],
        },
        {
          name: "Portuguese Female",
          flag: "br",
          gender: "f",
          lang: "pt-BR",
          voiceIDs: [128, 127, 129, 187, 224, 479, 272, 301, 357, 130],
        },
        {
          name: "Portuguese Male",
          flag: "br",
          gender: "m",
          lang: "pt-BR",
          voiceIDs: [400],
        },
        {
          name: "Romanian Female",
          flag: "ro",
          gender: "f",
          lang: "ro-RO",
          voiceIDs: [526, 424, 151, 150, 152, 225, 46],
        },
        {
          name: "Russian Female",
          flag: "ru",
          gender: "f",
          lang: "ru-RU",
          voiceIDs: [246, 47, 48, 83, 468, 188, 226, 260, 289, 345, 49],
        },
        {
          name: "Russian Male",
          flag: "ru",
          gender: "m",
          lang: "ru-RU",
          voiceIDs: [316, 333, 372, 387],
          deprecated: !0,
        },
        {
          name: "Sinhala",
          flag: "lk",
          gender: "f",
          lang: "si-LK",
          voiceIDs: [501, 425, 442],
        },
        {
          name: "Slovak Female",
          flag: "sk",
          gender: "f",
          lang: "sk-SK",
          voiceIDs: [506, 426, 133, 132, 134, 227, 135],
        },
        {
          name: "Slovak Male",
          flag: "sk",
          gender: "m",
          lang: "sk-SK",
          voiceIDs: [167],
          deprecated: !0,
        },
        {
          name: "Spanish Female",
          flag: "es",
          gender: "f",
          lang: "es-ES",
          voiceIDs: [
            19, 238, 16, 17, 18, 20, 76, 174, 207, 514, 521, 263, 292, 348, 264,
            293, 349, 15,
          ],
        },
        {
          name: "Spanish Male",
          flag: "es",
          gender: "m",
          lang: "es-ES",
          voiceIDs: [309, 326, 365, 401],
          deprecated: !0,
        },
        {
          name: "Spanish Latin American Female",
          flag: "es",
          gender: "f",
          lang: "es-MX",
          voiceIDs: [239, 137, 136, 138, 175, 208, 265, 294, 350, 139],
        },
        {
          name: "Spanish Latin American Male",
          flag: "es",
          gender: "m",
          lang: "es-MX",
          voiceIDs: [136, 310, 327, 366, 402],
        },
        {
          name: "Swedish Female",
          flag: "sv",
          gender: "f",
          lang: "sv-SE",
          voiceIDs: [482, 427, 85, 149, 228, 65],
        },
        {
          name: "Swedish Male",
          flag: "sv",
          gender: "m",
          lang: "sv-SE",
          voiceIDs: [148, 168],
        },
        {
          name: "Tamil Female",
          flag: "hi",
          gender: "m",
          lang: "hi-IN",
          voiceIDs: [458, 516, 451],
        },
        {
          name: "Tamil Male",
          flag: "hi",
          gender: "m",
          lang: "hi-IN",
          voiceIDs: [141],
        },
        {
          name: "Thai Female",
          flag: "th",
          gender: "f",
          lang: "th-TH",
          voiceIDs: [143, 142, 144, 471, 189, 229, 145],
        },
        {
          name: "Thai Male",
          flag: "th",
          gender: "m",
          lang: "th-TH",
          voiceIDs: [403],
        },
        {
          name: "Turkish Female",
          flag: "tr",
          gender: "f",
          lang: "tr-TR",
          voiceIDs: [69, 70, 82, 475, 190, 230, 71],
        },
        {
          name: "Turkish Male",
          flag: "tr",
          gender: "m",
          lang: "tr-TR",
          voiceIDs: [465, 404],
        },
        {
          name: "Ukrainian Female",
          flag: "ua",
          gender: "f",
          lang: "uk-UA",
          voiceIDs: [494, 428, 443],
        },
        {
          name: "Vietnamese Female",
          flag: "vi",
          gender: "f",
          lang: "vi-VN",
          voiceIDs: [480, 429, 405],
        },
        {
          name: "Vietnamese Male",
          flag: "vi",
          gender: "m",
          lang: "vi-VN",
          voiceIDs: [146],
        },
        {
          name: "Afrikaans Male",
          flag: "af",
          gender: "m",
          lang: "af-ZA",
          voiceIDs: [93],
        },
        {
          name: "Albanian Male",
          flag: "sq",
          gender: "m",
          lang: "sq-AL",
          voiceIDs: [94],
        },
        {
          name: "Bosnian Male",
          flag: "bs",
          gender: "m",
          lang: "bs",
          voiceIDs: [14],
        },
        {
          name: "Catalan Male",
          flag: "catalonia",
          gender: "m",
          lang: "ca-ES",
          voiceIDs: [68],
        },
        {
          name: "Croatian Male",
          flag: "hr",
          gender: "m",
          lang: "hr-HR",
          voiceIDs: [13],
        },
        {
          name: "Esperanto Male",
          flag: "eo",
          gender: "m",
          lang: "eo",
          voiceIDs: [108],
        },
        {
          name: "Icelandic Male",
          flag: "is",
          gender: "m",
          lang: "is-IS",
          voiceIDs: [110],
          deprecated: !0,
        },
        {
          name: "Icelandic Female",
          flag: "is",
          gender: "m",
          lang: "is-IS",
          voiceIDs: [110],
        },
        {
          name: "Latvian Male",
          flag: "lv",
          gender: "m",
          lang: "lv-LV",
          voiceIDs: [115],
        },
        {
          name: "Macedonian Male",
          flag: "mk",
          gender: "m",
          lang: "mk-MK",
          voiceIDs: [116],
        },
        {
          name: "Moldavian Female",
          flag: "md",
          gender: "f",
          lang: "md",
          voiceIDs: [117],
        },
        {
          name: "Moldavian Male",
          flag: "md",
          gender: "m",
          lang: "md",
          voiceIDs: [117],
          deprecated: !0,
        },
        {
          name: "Montenegrin Male",
          flag: "me",
          gender: "m",
          lang: "me",
          voiceIDs: [118],
        },
        {
          name: "Serbian Male",
          flag: "sr",
          gender: "m",
          lang: "sr-RS",
          voiceIDs: [12],
        },
        {
          name: "Serbo-Croatian Male",
          flag: "hr",
          gender: "m",
          lang: "hr-HR",
          voiceIDs: [131],
        },
        {
          name: "Swahili Male",
          flag: "sw",
          gender: "m",
          lang: "sw-KE",
          voiceIDs: [140],
        },
        {
          name: "Welsh Male",
          flag: "cy",
          gender: "m",
          lang: "cy",
          voiceIDs: [147],
        },
        {
          name: "Fallback UK Female",
          flag: "gb",
          gender: "f",
          lang: "en-GB",
          voiceIDs: [8],
        },
      ];
      a.voicecollection = [
        { name: "Google UK English Male" },
        { name: "Agnes" },
        { name: "Daniel Compact" },
        { name: "Google UK English Female" },
        { name: "en-GB", rate: 0.25, pitch: 1 },
        { name: "en-AU", rate: 0.25, pitch: 1 },
        { name: "ingl\u00e9s Reino Unido" },
        { name: "English United Kingdom" },
        {
          name: "Fallback en-GB Female",
          lang: "en-GB",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Eszter Compact" },
        { name: "hu-HU", rate: 0.4 },
        {
          name: "Fallback Hungarian Female",
          lang: "hu",
          fallbackvoice: !0,
          service: "g1",
        },
        {
          name: "Fallback Serbian Male",
          lang: "sr",
          fallbackvoice: !0,
          service: "g1",
          gender: "male",
        },
        {
          name: "Fallback Croatian Male",
          lang: "hr",
          rate: 0.5,
          fallbackvoice: !0,
          service: "g2",
          gender: "male",
        },
        {
          name: "Fallback Bosnian Male",
          lang: "bs",
          fallbackvoice: !0,
          service: "g2",
          gender: "male",
        },
        {
          name: "Fallback Spanish Female",
          lang: "es",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Spanish Spain" },
        { name: "espa\u00f1ol Espa\u00f1a" },
        { name: "Diego Compact", rate: 0.3 },
        { name: "Google Espa\u00f1ol" },
        { name: "es-ES", rate: 0.2 },
        { name: "Google Fran\u00e7ais" },
        { name: "French France" },
        { name: "franc\u00e9s Francia" },
        { name: "Virginie Compact", rate: 0.5 },
        { name: "fr-FR", rate: 0.25 },
        {
          name: "Fallback French Female",
          lang: "fr",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Google Deutsch" },
        { name: "German Germany" },
        { name: "alem\u00e1n Alemania" },
        { name: "Yannick Compact", rate: 0.5 },
        { name: "de-DE", rate: 0.25 },
        {
          name: "Fallback Deutsch Female",
          lang: "de",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Google Italiano" },
        { name: "Italian Italy" },
        { name: "italiano Italia" },
        { name: "Paolo Compact", rate: 0.5 },
        { name: "it-IT", rate: 0.25 },
        {
          name: "Fallback Italian Female",
          lang: "it",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Google US English", timerSpeed: 1 },
        { name: "English United States" },
        { name: "ingl\u00e9s Estados Unidos" },
        { name: "Vicki" },
        { name: "en-US", rate: 0.2, pitch: 1, timerSpeed: 1.3 },
        {
          name: "Fallback US English",
          lang: "en-US",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Dutch Female",
          lang: "nl",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Romanian",
          lang: "ro",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Milena Compact" },
        { name: "ru-RU", rate: 0.25 },
        {
          name: "Fallback Russian",
          lang: "ru",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Google \u65e5\u672c\u4eba", timerSpeed: 1 },
        { name: "Kyoko Compact" },
        { name: "ja-JP", rate: 0.25 },
        {
          name: "Fallback Japanese Female",
          lang: "ja",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Google \ud55c\uad6d\uc758", timerSpeed: 1 },
        { name: "Narae Compact" },
        { name: "ko-KR", rate: 0.25 },
        {
          name: "Fallback Korean Female",
          lang: "ko",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Google \u4e2d\u56fd\u7684", timerSpeed: 1 },
        { name: "Ting-Ting Compact" },
        { name: "zh-CN", rate: 0.25 },
        {
          name: "Fallback Chinese",
          lang: "zh-CN",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Alexandros Compact" },
        { name: "el-GR", rate: 0.25 },
        {
          name: "Fallback Greek",
          lang: "el",
          fallbackvoice: !0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback Swedish",
          lang: "sv",
          fallbackvoice: !0,
          service: "g3",
          gender: "female",
        },
        { name: "hi-IN", rate: 0.25 },
        {
          name: "Fallback Hindi Female",
          lang: "hi",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Catalan",
          lang: "ca",
          fallbackvoice: !0,
          service: "g1",
          gender: "male",
        },
        { name: "Aylin Compact" },
        { name: "tr-TR", rate: 0.25 },
        {
          name: "Fallback Turkish",
          lang: "tr",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Stine Compact" },
        { name: "no-NO", rate: 0.25 },
        {
          name: "Fallback Norwegian",
          lang: "no",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Daniel" },
        { name: "Monica" },
        { name: "Amelie" },
        { name: "Anna" },
        { name: "Alice" },
        { name: "Melina" },
        { name: "Mariska" },
        { name: "Yelda" },
        { name: "Milena" },
        { name: "Xander" },
        { name: "Alva" },
        { name: "Lee Compact" },
        { name: "Karen" },
        {
          name: "Fallback Australian Female",
          lang: "en-AU",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Mikko Compact" },
        { name: "Satu" },
        { name: "fi-FI", rate: 0.25 },
        {
          name: "Fallback Finnish",
          lang: "fi",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Afrikans",
          lang: "af",
          fallbackvoice: !0,
          service: "g1",
          gender: "male",
        },
        {
          name: "Fallback Albanian",
          lang: "sq",
          fallbackvoice: !0,
          service: "g2",
          gender: "male",
        },
        { name: "Maged Compact" },
        { name: "Tarik" },
        { name: "ar-SA", rate: 0.25 },
        {
          name: "Fallback Arabic",
          lang: "ar",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Armenian",
          lang: "hy",
          fallbackvoice: !0,
          service: "g5",
          gender: "male",
        },
        { name: "Zuzana Compact" },
        { name: "Zuzana" },
        { name: "cs-CZ", rate: 0.25 },
        {
          name: "Fallback Czech",
          lang: "cs",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Ida Compact" },
        { name: "Sara" },
        { name: "da-DK", rate: 0.25 },
        {
          name: "Fallback Danish",
          lang: "da",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Esperanto",
          lang: "eo",
          fallbackvoice: !0,
          service: "g5",
          gender: "male",
        },
        { name: "Fallback Haitian Creole", lang: "ht", fallbackvoice: !0 },
        {
          name: "Fallback Icelandic",
          lang: "is",
          fallbackvoice: !0,
          service: "g1",
          gender: "male",
        },
        { name: "Damayanti" },
        { name: "id-ID", rate: 0.25 },
        {
          name: "Fallback Indonesian Female",
          lang: "id",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Latin Female",
          lang: "la",
          fallbackvoice: !0,
          service: "g2",
          gender: "female",
        },
        {
          name: "Fallback Latvian Male",
          lang: "lv",
          fallbackvoice: !0,
          service: "g1",
          gender: "male",
        },
        {
          name: "Fallback Macedonian Male",
          lang: "mk",
          fallbackvoice: !0,
          service: "g5",
          gender: "male",
        },
        {
          name: "Fallback Moldavian Female",
          lang: "mo",
          fallbackvoice: !0,
          service: "g2",
          gender: "female",
        },
        {
          name: "Fallback Montenegrin Male",
          lang: "sr-ME",
          fallbackvoice: !0,
          service: "g1",
          gender: "male",
        },
        { name: "Agata Compact" },
        { name: "Zosia" },
        { name: "pl-PL", rate: 0.25 },
        {
          name: "Fallback Polish Female",
          lang: "pl",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Raquel Compact" },
        { name: "Luciana" },
        { name: "pt-BR", rate: 0.25 },
        {
          name: "Fallback Brazilian Portuguese Female",
          lang: "pt-BR",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Joana Compact" },
        { name: "Joana" },
        { name: "pt-PT", rate: 0.25 },
        {
          name: "Fallback Portuguese",
          lang: "pt-PT",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Serbo-Croation",
          lang: "sh",
          fallbackvoice: !0,
          service: "g2",
          gender: "male",
        },
        { name: "Laura Compact" },
        { name: "Laura" },
        { name: "sk-SK", rate: 0.25 },
        {
          name: "Fallback Slovak",
          lang: "sk",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Javier Compact" },
        { name: "Paulina" },
        { name: "es-MX", rate: 0.25 },
        {
          name: "Fallback Spanish (Latin American) Female",
          lang: "es-419",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Swahili",
          lang: "sw",
          fallbackvoice: !0,
          service: "g2",
          gender: "male",
        },
        {
          name: "Fallback Tamil",
          lang: "ta",
          fallbackvoice: !0,
          service: "g1",
          gender: "male",
        },
        { name: "Narisa Compact" },
        { name: "Kanya" },
        { name: "th-TH", rate: 0.25 },
        {
          name: "Fallback Thai Female",
          lang: "th",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Vietnamese Male",
          lang: "vi",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Welsh",
          lang: "cy",
          fallbackvoice: !0,
          service: "g5",
          gender: "male",
        },
        { name: "Oskar Compact" },
        { name: "sv-SE", rate: 0.25 },
        { name: "Simona Compact" },
        { name: "Ioana" },
        { name: "ro-RO", rate: 0.25 },
        { name: "Kyoko" },
        { name: "Lekha" },
        { name: "Ting-Ting" },
        { name: "Yuna" },
        { name: "Xander Compact" },
        { name: "nl-NL", rate: 0.25 },
        {
          name: "Fallback UK English Male",
          lang: "en-GB",
          fallbackvoice: !0,
          service: "g1",
          voicename: "rjs",
          gender: "male",
        },
        {
          name: "Finnish Male",
          lang: "fi",
          fallbackvoice: !0,
          service: "g3",
          voicename: "",
          gender: "male",
          deprecated: !0,
        },
        {
          name: "Czech Male",
          lang: "cs",
          fallbackvoice: !0,
          service: "g3",
          voicename: "",
          gender: "male",
          deprecated: !0,
        },
        {
          name: "Danish Male",
          lang: "da",
          fallbackvoice: !0,
          service: "g3",
          voicename: "",
          gender: "male",
          deprecated: !0,
        },
        {
          name: "Greek Male",
          lang: "el",
          fallbackvoice: !0,
          service: "g3",
          voicename: "",
          gender: "male",
          deprecated: !0,
        },
        {
          name: "Hungarian Male",
          lang: "hu",
          fallbackvoice: !0,
          service: "g3",
          voicename: "",
          gender: "male",
          deprecated: !0,
        },
        {
          name: "Latin Male",
          lang: "la",
          fallbackvoice: !0,
          service: "g2",
          voicename: "",
          gender: "male",
        },
        {
          name: "Norwegian Male",
          lang: "no",
          fallbackvoice: !0,
          service: "g3",
          voicename: "",
          gender: "male",
        },
        {
          name: "Slovak Male",
          lang: "sk",
          fallbackvoice: !0,
          service: "g3",
          voicename: "",
          gender: "male",
          deprecated: !0,
        },
        {
          name: "Swedish Male",
          lang: "sv",
          fallbackvoice: !0,
          service: "g3",
          voicename: "",
          gender: "male",
        },
        {
          name: "Fallback US English Male",
          lang: "en-US",
          fallbackvoice: !0,
          service: "g3",
          voicename: "",
          gender: "male",
        },
        { name: "German Germany", lang: "de_DE" },
        { name: "English United Kingdom", lang: "en_GB" },
        { name: "English India", lang: "en_IN" },
        { name: "English United States", lang: "en_US" },
        { name: "Spanish Spain", lang: "es_ES" },
        { name: "Spanish Mexico", lang: "es_MX" },
        { name: "Spanish United States", lang: "es_US" },
        { name: "French Belgium", lang: "fr_BE" },
        { name: "French France", lang: "fr_FR" },
        { name: "Hindi India", lang: "hi_IN" },
        { name: "Indonesian Indonesia", lang: "in_ID" },
        { name: "Italian Italy", lang: "it_IT" },
        { name: "Japanese Japan", lang: "ja_JP" },
        { name: "Korean South Korea", lang: "ko_KR" },
        { name: "Dutch Netherlands", lang: "nl_NL" },
        { name: "Polish Poland", lang: "pl_PL" },
        { name: "Portuguese Brazil", lang: "pt_BR" },
        { name: "Portuguese Portugal", lang: "pt_PT" },
        { name: "Russian Russia", lang: "ru_RU" },
        { name: "Thai Thailand", lang: "th_TH" },
        { name: "Turkish Turkey", lang: "tr_TR" },
        { name: "Chinese China", lang: "zh_CN_#Hans" },
        { name: "Chinese Hong Kong", lang: "zh_HK_#Hans" },
        { name: "Chinese Hong Kong", lang: "zh_HK_#Hant" },
        { name: "Chinese Taiwan", lang: "zh_TW_#Hant" },
        { name: "Alex" },
        { name: "Maged", lang: "ar-SA" },
        { name: "Zuzana", lang: "cs-CZ" },
        { name: "Sara", lang: "da-DK" },
        { name: "Anna", lang: "de-DE" },
        { name: "Melina", lang: "el-GR" },
        { name: "Karen", lang: "en-AU" },
        { name: "Daniel", lang: "en-GB" },
        { name: "Moira", lang: "en-IE" },
        { name: "Samantha (Enhanced)", lang: "en-US" },
        { name: "Samantha", lang: "en-US" },
        { name: "Tessa", lang: "en-ZA" },
        { name: "Monica", lang: "es-ES" },
        { name: "Paulina", lang: "es-MX" },
        { name: "Satu", lang: "fi-FI" },
        { name: "Amelie", lang: "fr-CA" },
        { name: "Thomas", lang: "fr-FR" },
        { name: "Carmit", lang: "he-IL" },
        { name: "Lekha", lang: "hi-IN" },
        { name: "Mariska", lang: "hu-HU" },
        { name: "Damayanti", lang: "id-ID" },
        { name: "Alice", lang: "it-IT" },
        { name: "Kyoko", lang: "ja-JP" },
        { name: "Yuna", lang: "ko-KR" },
        { name: "Ellen", lang: "nl-BE" },
        { name: "Xander", lang: "nl-NL" },
        { name: "Nora", lang: "no-NO" },
        { name: "Zosia", lang: "pl-PL" },
        { name: "Luciana", lang: "pt-BR" },
        { name: "Joana", lang: "pt-PT" },
        { name: "Ioana", lang: "ro-RO" },
        { name: "Milena", lang: "ru-RU" },
        { name: "Laura", lang: "sk-SK" },
        { name: "Alva", lang: "sv-SE" },
        { name: "Kanya", lang: "th-TH" },
        { name: "Yelda", lang: "tr-TR" },
        { name: "Ting-Ting", lang: "zh-CN" },
        { name: "Sin-Ji", lang: "zh-HK" },
        { name: "Mei-Jia", lang: "zh-TW" },
        {
          name: "Microsoft David Mobile - English (United States)",
          lang: "en-US",
        },
        {
          name: "Microsoft Zira Mobile - English (United States)",
          lang: "en-US",
        },
        {
          name: "Microsoft Mark Mobile - English (United States)",
          lang: "en-US",
        },
        { name: "native", lang: "" },
        { name: "Google espa\u00f1ol" },
        { name: "Google espa\u00f1ol de Estados Unidos" },
        { name: "Google fran\u00e7ais" },
        { name: "Google Bahasa Indonesia" },
        { name: "Google italiano" },
        { name: "Google Nederlands" },
        { name: "Google polski" },
        { name: "Google portugu\u00eas do Brasil" },
        { name: "Google \u0440\u0443\u0441\u0441\u043a\u0438\u0439" },
        { name: "Google \u0939\u093f\u0928\u094d\u0926\u0940" },
        { name: "Google \u65e5\u672c\u8a9e" },
        {
          name: "Google \u666e\u901a\u8bdd\uff08\u4e2d\u56fd\u5927\u9646\uff09",
        },
        { name: "Google \u7ca4\u8a9e\uff08\u9999\u6e2f\uff09" },
        { name: "zh-HK", rate: 0.25 },
        {
          name: "Fallback Chinese (Hong Kong) Female",
          lang: "zh-HK",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        { name: "Google \u7ca4\u8a9e\uff08\u9999\u6e2f\uff09" },
        { name: "zh-TW", rate: 0.25 },
        {
          name: "Fallback Chinese (Taiwan) Female",
          lang: "zh-TW",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Microsoft George Mobile - English (United Kingdom)",
          lang: "en-GB",
        },
        {
          name: "Microsoft Susan Mobile - English (United Kingdom)",
          lang: "en-GB",
        },
        {
          name: "Microsoft Hazel Mobile - English (United Kingdom)",
          lang: "en-GB",
        },
        { name: "Microsoft Heera Mobile - English (India)", lang: "en-In" },
        { name: "Microsoft Irina Mobile - Russian (Russia)", lang: "ru-RU" },
        { name: "Microsoft Hedda Mobile - German (Germany)", lang: "de-DE" },
        { name: "Microsoft Katja Mobile - German (Germany)", lang: "de-DE" },
        { name: "Microsoft Helena Mobile - Spanish (Spain)", lang: "es-ES" },
        { name: "Microsoft Laura Mobile - Spanish (Spain)", lang: "es-ES" },
        { name: "Microsoft Sabina Mobile - Spanish (Mexico)", lang: "es-MX" },
        { name: "Microsoft Julie Mobile - French (France)", lang: "fr-FR" },
        { name: "Microsoft Paulina Mobile - Polish (Poland)", lang: "pl-PL" },
        {
          name: "Microsoft Huihui Mobile - Chinese (Simplified, PRC)",
          lang: "zh-CN",
        },
        {
          name: "Microsoft Yaoyao Mobile - Chinese (Simplified, PRC)",
          lang: "zh-CN",
        },
        {
          name: "Microsoft Tracy Mobile - Chinese (Traditional, Hong Kong S.A.R.)",
          lang: "zh-CN",
        },
        { name: "Microsoft Elsa Mobile - Italian (Italy)", lang: "it-IT" },
        { name: "Microsoft Maria Mobile - Portuguese (Brazil)", lang: "pt-BR" },
        { name: "Microsoft Ayumi Mobile - Japanese (Japan)", lang: "ja-JP" },
        { name: "Microsoft Haruka Mobile - Japanese (Japan)", lang: "ja-JP" },
        { name: "Helena", lang: "de-DE" },
        { name: "Catherine", lang: "en-AU" },
        { name: "Arthur", lang: "en-GB" },
        { name: "Martha", lang: "en-GB" },
        { name: "Marie", lang: "fr-FR" },
        { name: "O-ren", lang: "ja-JP" },
        { name: "Yu-shu", lang: "zh-CN" },
        { name: "Microsoft David - English (United States)", lang: "en-US" },
        { name: "Microsoft Zira - English (United States)", lang: "en-US" },
        { name: "Microsoft Mark - English (United States)", lang: "en-US" },
        { name: "Microsoft George - English (United Kingdom)", lang: "en-GB" },
        { name: "Microsoft Susan - English (United Kingdom)", lang: "en-GB" },
        { name: "Microsoft Hazel - English (United Kingdom)", lang: "en-GB" },
        { name: "Microsoft Heera - English (India)", lang: "en-In" },
        { name: "Microsoft Irina - Russian (Russia)", lang: "ru-RU" },
        { name: "Microsoft Hedda - German (Germany)", lang: "de-DE" },
        { name: "Microsoft Katja - German (Germany)", lang: "de-DE" },
        { name: "Microsoft Helena - Spanish (Spain)", lang: "es-ES" },
        { name: "Microsoft Laura - Spanish (Spain)", lang: "es-ES" },
        { name: "Microsoft Sabina - Spanish (Mexico)", lang: "es-MX" },
        { name: "Microsoft Julie - French (France)", lang: "fr-FR" },
        { name: "Microsoft Paulina - Polish (Poland)", lang: "pl-PL" },
        { name: "Microsoft Huihui - Chinese (Simplified, PRC)", lang: "zh-CN" },
        { name: "Microsoft Yaoyao - Chinese (Simplified, PRC)", lang: "zh-CN" },
        {
          name: "Microsoft Tracy - Chinese (Traditional, Hong Kong S.A.R.)",
          lang: "zh-CN",
        },
        { name: "Microsoft Elsa - Italian (Italy)", lang: "it-IT" },
        { name: "Microsoft Maria - Portuguese (Brazil)", lang: "pt-BR" },
        { name: "Microsoft Ayumi - Japanese (Japan)", lang: "ja-JP" },
        { name: "Microsoft Haruka - Japanese (Japan)", lang: "ja-JP" },
        { name: "Microsoft Hortense - French (France)", lang: "fr-FR" },
        {
          name: "Microsoft Hanhan - Chinese (Traditional, Taiwan)",
          lang: "zh-TW",
        },
        { name: "Microsoft Heami - Korean (Korean)", lang: "ko-KR" },
        { name: "Microsoft Stefan - German (Germany)", lang: "de-DE" },
        { name: "Microsoft Ravi - English (India)", lang: "en-IN" },
        { name: "Microsoft Pablo - Spanish (Spain)", lang: "es-ES" },
        { name: "Microsoft Raul - Spanish (Mexico)", lang: "es-MX" },
        { name: "Microsoft Paul - French (France)", lang: "fr-FR" },
        { name: "Microsoft Cosimo - Italian (Italy)", lang: "it-IT" },
        { name: "Microsoft Ichiro - Japanese (Japan)", lang: "ja-JP" },
        { name: "Microsoft Adam - Polish (Poland)", lang: "pl-PL" },
        { name: "Microsoft Daniel - Portuguese (Brazil)", lang: "pt-BR" },
        { name: "Microsoft Pavel - Russian (Russia)", lang: "ru-RU" },
        {
          name: "Microsoft Kangkang - Chinese (Simplified, PRC)",
          lang: "zh-CN",
        },
        {
          name: "Microsoft Danny - Chinese (Traditional, Hong Kong S.A.R.)",
          lang: "zh-HK",
        },
        {
          name: "Microsoft Yating - Chinese (Traditional, Taiwan)",
          lang: "zh-TW",
        },
        {
          name: "Microsoft Zhiwei - Chinese (Traditional, Taiwan)",
          lang: "zh-TW",
        },
        { name: "Microsoft Hortense Mobile - French (France)", lang: "fr-FR" },
        {
          name: "Microsoft Hanhan Mobile - Chinese (Traditional, Taiwan)",
          lang: "zh-TW",
        },
        { name: "Microsoft Heami Mobile - Korean (Korean)", lang: "ko-KR" },
        { name: "Microsoft Stefan Mobile - German (Germany)", lang: "de-DE" },
        { name: "Microsoft Ravi Mobile - English (India)", lang: "en-IN" },
        { name: "Microsoft Pablo Mobile - Spanish (Spain)", lang: "es-ES" },
        { name: "Microsoft Raul Mobile - Spanish (Mexico)", lang: "es-MX" },
        { name: "Microsoft Paul Mobile - French (France)", lang: "fr-FR" },
        { name: "Microsoft Cosimo Mobile - Italian (Italy)", lang: "it-IT" },
        { name: "Microsoft Ichiro Mobile - Japanese (Japan)", lang: "ja-JP" },
        { name: "Microsoft Adam Mobile - Polish (Poland)", lang: "pl-PL" },
        {
          name: "Microsoft Daniel Mobile - Portuguese (Brazil)",
          lang: "pt-BR",
        },
        { name: "Microsoft Pavel Mobile - Russian (Russia)", lang: "ru-RU" },
        {
          name: "Microsoft Kangkang Mobile - Chinese (Simplified, PRC)",
          lang: "zh-CN",
        },
        {
          name: "Microsoft Danny Mobile - Chinese (Traditional, Hong Kong S.A.R.)",
          lang: "zh-HK",
        },
        {
          name: "Microsoft Yating Mobile - Chinese (Traditional, Taiwan)",
          lang: "zh-TW",
        },
        {
          name: "Microsoft Zhiwei Mobile - Chinese (Traditional, Taiwan)",
          lang: "zh-TW",
        },
        {
          name: "Microsoft David Desktop - English (United States)",
          lang: "en-US",
        },
        {
          name: "Microsoft Zira Desktop - English (United States)",
          lang: "en-US",
        },
        {
          name: "Microsoft Mark Desktop - English (United States)",
          lang: "en-US",
        },
        {
          name: "Microsoft George Desktop - English (United Kingdom)",
          lang: "en-GB",
        },
        {
          name: "Microsoft Susan Desktop - English (United Kingdom)",
          lang: "en-GB",
        },
        {
          name: "Microsoft Hazel Desktop - English (United Kingdom)",
          lang: "en-GB",
        },
        { name: "Microsoft Heera Desktop - English (India)", lang: "en-In" },
        { name: "Microsoft Irina Desktop - Russian (Russia)", lang: "ru-RU" },
        { name: "Microsoft Hedda Desktop - German (Germany)", lang: "de-DE" },
        { name: "Microsoft Katja Desktop - German (Germany)", lang: "de-DE" },
        { name: "Microsoft Helena Desktop - Spanish (Spain)", lang: "es-ES" },
        { name: "Microsoft Laura Desktop - Spanish (Spain)", lang: "es-ES" },
        { name: "Microsoft Sabina Desktop - Spanish (Mexico)", lang: "es-MX" },
        { name: "Microsoft Julie Desktop - French (France)", lang: "fr-FR" },
        { name: "Microsoft Paulina Desktop - Polish (Poland)", lang: "pl-PL" },
        {
          name: "Microsoft Huihui Desktop - Chinese (Simplified, PRC)",
          lang: "zh-CN",
        },
        {
          name: "Microsoft Yaoyao Desktop - Chinese (Simplified, PRC)",
          lang: "zh-CN",
        },
        {
          name: "Microsoft Tracy Desktop - Chinese (Traditional, Hong Kong S.A.R.)",
          lang: "zh-CN",
        },
        { name: "Microsoft Elsa Desktop - Italian (Italy)", lang: "it-IT" },
        {
          name: "Microsoft Maria Desktop - Portuguese (Brazil)",
          lang: "pt-BR",
        },
        { name: "Microsoft Ayumi Desktop - Japanese (Japan)", lang: "ja-JP" },
        { name: "Microsoft Haruka Desktop - Japanese (Japan)", lang: "ja-JP" },
        { name: "Microsoft Hortense Desktop - French (France)", lang: "fr-FR" },
        {
          name: "Microsoft Hanhan Desktop - Chinese (Traditional, Taiwan)",
          lang: "zh-TW",
        },
        { name: "Microsoft Heami Desktop - Korean (Korean)", lang: "ko-KR" },
        { name: "Microsoft Stefan Desktop - German (Germany)", lang: "de-DE" },
        { name: "Microsoft Ravi Desktop - English (India)", lang: "en-IN" },
        { name: "Microsoft Pablo Desktop - Spanish (Spain)", lang: "es-ES" },
        { name: "Microsoft Raul Desktop - Spanish (Mexico)", lang: "es-MX" },
        { name: "Microsoft Paul Desktop - French (France)", lang: "fr-FR" },
        { name: "Microsoft Cosimo Desktop - Italian (Italy)", lang: "it-IT" },
        { name: "Microsoft Ichiro Desktop - Japanese (Japan)", lang: "ja-JP" },
        { name: "Microsoft Adam Desktop - Polish (Poland)", lang: "pl-PL" },
        {
          name: "Microsoft Daniel Desktop - Portuguese (Brazil)",
          lang: "pt-BR",
        },
        { name: "Microsoft Pavel Desktop - Russian (Russia)", lang: "ru-RU" },
        {
          name: "Microsoft Kangkang Desktop - Chinese (Simplified, PRC)",
          lang: "zh-CN",
        },
        {
          name: "Microsoft Danny Desktop - Chinese (Traditional, Hong Kong S.A.R.)",
          lang: "zh-HK",
        },
        {
          name: "Microsoft Yating Desktop - Chinese (Traditional, Taiwan)",
          lang: "zh-TW",
        },
        {
          name: "Microsoft Zhiwei Desktop - Chinese (Traditional, Taiwan)",
          lang: "zh-TW",
        },
        { name: "Martin", lang: "de-DE" },
        { name: "Daniel", lang: "fr-FR" },
        { name: "Hattori", lang: "ja-JP" },
        { name: "Li-mu", lang: "zh-CN" },
        { name: "Gordon", lang: "en-AU" },
        { name: "Aaron", lang: "en-US" },
        { name: "Nicky", lang: "en-US" },
        { name: "Microsoft Hanhan Desktop - Chinese (Taiwan)", lang: "zh-TW" },
        { name: "Microsoft Heami Desktop - Korean", lang: "ko-KR" },
        {
          name: "Fallback Australian Male",
          lang: "en-AU",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Russian Male",
          lang: "ru",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
          deprecated: !0,
        },
        {
          name: "Fallback Arabic Male",
          lang: "ar",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Chinese",
          lang: "zh-CN",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Chinese HK",
          lang: "zh-HK",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Chinese TW",
          lang: "zh-TW",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback French Male",
          lang: "fr",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Deutsch Male",
          lang: "de",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Hindi Male",
          lang: "hi",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Indonesian Male",
          lang: "id",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Japanese Male",
          lang: "ja",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Korean Male",
          lang: "ko",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Polish Male",
          lang: "pl",
          fallbackvoice: !0,
          service: "g1",
          gender: "male",
        },
        {
          name: "Fallback Brazilian Portuguese Male",
          lang: "pt-BR",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
          deprecated: !0,
        },
        {
          name: "Fallback Portuguese Male",
          lang: "pt-PT",
          fallbackvoice: !0,
          service: "g1",
          gender: "male",
        },
        {
          name: "Fallback Spanish Male",
          lang: "es",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
          deprecated: !0,
        },
        {
          name: "Fallback Spanish (Latin American) Male",
          lang: "es-419",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Thai Male",
          lang: "th",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Turkish Male",
          lang: "tr",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Vietnamese Female",
          lang: "vi",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Fallback Italian Male",
          lang: "it",
          fallbackvoice: !0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Dutch Male",
          lang: "nl",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Microsoft Anna - English (United States)",
          lang: "en-US",
          gender: "female",
        },
        {
          name: "Microsoft Lili - Chinese (China)",
          lang: "zh-CN",
          gender: "female",
        },
        { name: "Bangla Bangladesh", lang: "bn_BD", gender: "male" },
        { name: "Bangla India", lang: "bn_IN", gender: "male" },
        { name: "Czech Czechia", lang: "cs_CZ", gender: "female" },
        { name: "Danish Denmark", lang: "da_DK", gender: "female" },
        { name: "Greek Greece", lang: "el_GR", gender: "female" },
        { name: "English Australia", lang: "en_AU", gender: "female" },
        { name: "Estonian Estonia", lang: "et_EE", gender: "male" },
        { name: "Finnish Finland", lang: "fi_FI", gender: "female" },
        { name: "Filipino Philippines", lang: "fil_PH", gender: "female" },
        { name: "French Canada", lang: "fr_CAF", gender: "female" },
        { name: "Hungarian Hungary", lang: "hu_HU", gender: "female" },
        { name: "Khmer Cambodia", lang: "km_KH", gender: "female" },
        {
          name: "Norwegian Bokm\u00e5l Norway",
          lang: "nb_NO",
          gender: "female",
        },
        { name: "Nepali Nepal", lang: "ne_NP", gender: "female" },
        { name: "Romanian Romania", lang: "ro_RO", gender: "female" },
        { name: "Sinhala Sri Lanka", lang: "si_LK", gender: "female" },
        { name: "Slovak Slovakia", lang: "sk_SK", gender: "female" },
        { name: "Swedish Sweden", lang: "sv_SE", gender: "female" },
        { name: "Ukrainian Ukraine", lang: "uk_UA", gender: "female" },
        { name: "Vietnamese Vietnam", lang: "vi_VN", gender: "female" },
        { name: "Cantonese Hong Kong", lang: "yue_HK_#Hant", gender: "female" },
        {
          name: "Microsoft Server Speech Text to Speech Voice (en-US, Guy24kRUS)",
          lang: "en-US",
          gender: "male",
        },
        {
          name: "Microsoft Server Speech Text to Speech Voice (en-US, Jessa24kRUS)",
          lang: "en-US",
          gender: "female",
        },
        {
          name: "Microsoft Server Speech Text to Speech Voice (en-US, JessaRUS)",
          lang: "en-US",
          gender: "female",
        },
        {
          name: "Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)",
          lang: "en-US",
          gender: "female",
        },
        {
          name: "Fallback Bangla Bangladeh Female",
          lang: "bn-BD",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback Bangla Bangladeh Male",
          lang: "bn-BD",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Filipino Female",
          lang: "fil-PH",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback Filipino Male",
          lang: "fil-PH",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Cambodian Khmer Female",
          lang: "km-KH",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback Cambodian Khmer Male",
          lang: "km-KH",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Nepali Female",
          lang: "ne-NP",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback Sinhala Female",
          lang: "si-LK",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback Ukrainian Female",
          lang: "uk-UA",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback Cantonese Hong Kong Female",
          lang: "yue-HK",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback Cantonese Hong Kong Male",
          lang: "yue-HK",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Estonian Male",
          lang: "et-EE",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Bangla India Female",
          lang: "bn-IN",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback Bangla India Male",
          lang: "bn-IN",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback French Canadian Female",
          lang: "fr-CA",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "female",
        },
        {
          name: "Fallback French Canadian Male",
          lang: "fr-CA",
          fallbackvoice: !0,
          timerSpeed: 0,
          service: "g3",
          gender: "male",
        },
        {
          name: "Fallback Tamil",
          lang: "ta",
          fallbackvoice: !0,
          service: "g1",
          gender: "female",
        },
        {
          name: "Tian-Tian",
          voiceURI: "com.apple.ttsbundle.Ting-Ting-compact",
          lang: "zh-CN",
          gender: "female",
        },
        { name: "English Nigeria", lang: "en_NG", gender: "female" },
        { name: "Gujarati India", lang: "gu_IN", gender: "female" },
        { name: "Kannada India", lang: "kn_IN", gender: "female" },
        { name: "Malayalam India", lang: "ml_IN", gender: "female" },
        { name: "Marathi India", lang: "mr_IN", gender: "female" },
        { name: "Tamil India", lang: "ta_IN", gender: "female" },
        { name: "Telugu India", lang: "te_IN", gender: "female" },
        { name: "Urdu Pakistan", lang: "ur_PK", gender: "female" },
        { name: "Javanese Indonesia", lang: "jv_ID", gender: "female" },
        { name: "Malay Malaysia", lang: "ms_MY", gender: "female" },
        { name: "Chinese Hong Kong", lang: "zh_HK_#Hans", gender: "female" },
        { name: "Chinese Hong Kong", lang: "zh_HK_#Hant", gender: "female" },
        {
          name: "Microsoft Tolga - Turkish (Turkey)",
          lang: "tr-TR",
          gender: "male",
        },
        {
          name: "Korean (South Korea)",
          voiceURI: "moz-tts:android:ko_KR",
          lang: "ko-KR",
          gender: "female",
        },
        {
          name: "Marathi (India)",
          voiceURI: "moz-tts:android:mr_IN",
          lang: "mr-IN",
          gender: "female",
        },
        {
          name: "Russian (Russia)",
          voiceURI: "moz-tts:android:ru_RU",
          lang: "ru-RU",
          gender: "female",
        },
        {
          name: "Chinese (Taiwan)",
          voiceURI: "moz-tts:android:zh_TW",
          lang: "zh-TW",
          gender: "female",
        },
        {
          name: "Hungarian (Hungary)",
          voiceURI: "moz-tts:android:hu_HU",
          lang: "hu-HU",
          gender: "female",
        },
        {
          name: "Thai (Thailand)",
          voiceURI: "moz-tts:android:th_TH",
          lang: "th-TH",
          gender: "female",
        },
        {
          name: "Urdu (Pakistan)",
          voiceURI: "moz-tts:android:ur_PK",
          lang: "ur-PK",
          gender: "female",
        },
        {
          name: "Norwegian Bokm\u00e5l (Norway)",
          voiceURI: "moz-tts:android:nb_NO",
          lang: "nb-NO",
          gender: "female",
        },
        {
          name: "Danish (Denmark)",
          voiceURI: "moz-tts:android:da_DK",
          lang: "da-DK",
          gender: "female",
        },
        {
          name: "Turkish (Turkey)",
          voiceURI: "moz-tts:android:tr_TR",
          lang: "tr-TR",
          gender: "female",
        },
        {
          name: "Estonian (Estonia)",
          voiceURI: "moz-tts:android:et_EE",
          lang: "et-EE",
          gender: "male",
        },
        {
          name: "Bosnian",
          voiceURI: "moz-tts:android:bs",
          lang: "bs",
          deprecated: !0,
        },
        {
          name: "Swahili",
          voiceURI: "moz-tts:android:sw",
          lang: "sw",
          deprecated: !0,
        },
        {
          name: "Portuguese (Portugal)",
          voiceURI: "moz-tts:android:pt_PT",
          lang: "pt-PT",
          gender: "female",
        },
        {
          name: "Vietnamese (Vietnam)",
          voiceURI: "moz-tts:android:vi_VN",
          lang: "vi-VN",
          gender: "female",
        },
        {
          name: "English (United States)",
          voiceURI: "moz-tts:android:en_US",
          lang: "en-US",
          gender: "female",
        },
        {
          name: "Swedish (Sweden)",
          voiceURI: "moz-tts:android:sv_SE",
          lang: "sv-SE",
          gender: "female",
        },
        {
          name: "Arabic",
          voiceURI: "moz-tts:android:ar",
          lang: "ar",
          gender: "female",
        },
        {
          name: "Sundanese (Indonesia)",
          voiceURI: "moz-tts:android:su_ID",
          lang: "su-ID",
          gender: "female",
        },
        {
          name: "Bangla (Bangladesh)",
          voiceURI: "moz-tts:android:bn_BD",
          lang: "bn-BD",
          gender: "male",
        },
        {
          name: "Gujarati (India)",
          voiceURI: "moz-tts:android:gu_IN",
          lang: "gu-IN",
          gender: "female",
        },
        {
          name: "Kannada (India)",
          voiceURI: "moz-tts:android:kn_IN",
          lang: "kn-IN",
          gender: "female",
        },
        {
          name: "Greek (Greece)",
          voiceURI: "moz-tts:android:el_GR",
          lang: "el-GR",
          gender: "female",
        },
        {
          name: "Hindi (India)",
          voiceURI: "moz-tts:android:hi_IN",
          lang: "hi-IN",
          gender: "female",
        },
        {
          name: "Finnish (Finland)",
          voiceURI: "moz-tts:android:fi_FI",
          lang: "fi-FI",
          gender: "female",
        },
        {
          name: "Khmer (Cambodia)",
          voiceURI: "moz-tts:android:km_KH",
          lang: "km-KH",
          gender: "female",
        },
        {
          name: "Bangla (India)",
          voiceURI: "moz-tts:android:bn_IN",
          lang: "bn-IN",
          gender: "male",
        },
        {
          name: "French (France)",
          voiceURI: "moz-tts:android:fr_FR",
          lang: "fr-FR",
          gender: "female",
        },
        {
          name: "Ukrainian (Ukraine)",
          voiceURI: "moz-tts:android:uk_UA",
          lang: "uk-UA",
          gender: "female",
        },
        {
          name: "English (Australia)",
          voiceURI: "moz-tts:android:en_AU",
          lang: "en-AU",
          gender: "female",
        },
        {
          name: "Dutch (Netherlands)",
          voiceURI: "moz-tts:android:nl_NL",
          lang: "nl-NL",
          gender: "female",
        },
        {
          name: "French (Canada)",
          voiceURI: "moz-tts:android:fr_CA",
          lang: "fr-CA",
          gender: "female",
        },
        {
          name: "Serbian",
          voiceURI: "moz-tts:android:sr",
          lang: "sr",
          gender: "female",
        },
        {
          name: "Portuguese (Brazil)",
          voiceURI: "moz-tts:android:pt_BR",
          lang: "pt-BR",
          gender: "female",
        },
        {
          name: "Malayalam (India)",
          voiceURI: "moz-tts:android:ml_IN",
          lang: "ml-IN",
          gender: "female",
        },
        {
          name: "Sinhala (Sri Lanka)",
          voiceURI: "moz-tts:android:si_LK",
          lang: "si-LK",
          gender: "female",
        },
        {
          name: "German (Germany)",
          voiceURI: "moz-tts:android:de_DE",
          lang: "de-DE",
          gender: "female",
        },
        {
          name: "Kurdish",
          voiceURI: "moz-tts:android:ku",
          lang: "ku",
          deprecated: !0,
        },
        {
          name: "Czech (Czechia)",
          voiceURI: "moz-tts:android:cs_CZ",
          lang: "cs-CZ",
          gender: "female",
        },
        {
          name: "Polish (Poland)",
          voiceURI: "moz-tts:android:pl_PL",
          lang: "pl-PL",
          gender: "female",
        },
        {
          name: "Slovak (Slovakia)",
          voiceURI: "moz-tts:android:sk_SK",
          lang: "sk-SK",
          gender: "female",
        },
        {
          name: "Filipino (Philippines)",
          voiceURI: "moz-tts:android:fil_PH",
          lang: "fil-PH",
          gender: "female",
        },
        {
          name: "Italian (Italy)",
          voiceURI: "moz-tts:android:it_IT",
          lang: "it-IT",
          gender: "female",
        },
        {
          name: "Nepali (Nepal)",
          voiceURI: "moz-tts:android:ne_NP",
          lang: "ne-NP",
          gender: "female",
        },
        {
          name: "Malay (Malaysia)",
          voiceURI: "moz-tts:android:ms_MY",
          lang: "ms-MY",
          gender: "female",
        },
        {
          name: "Croatian",
          voiceURI: "moz-tts:android:hr",
          lang: "hr",
          deprecated: !0,
        },
        {
          name: "English (Nigeria)",
          voiceURI: "moz-tts:android:en_NG",
          lang: "en-NG",
          gender: "female",
        },
        {
          name: "Chinese (China)",
          voiceURI: "moz-tts:android:zh_CN",
          lang: "zh-CN",
          gender: "female",
        },
        {
          name: "Spanish (Spain)",
          voiceURI: "moz-tts:android:es_ES",
          lang: "es-ES",
          gender: "female",
        },
        {
          name: "Welsh",
          voiceURI: "moz-tts:android:cy",
          lang: "cy",
          deprecated: !0,
        },
        {
          name: "Tamil (India)",
          voiceURI: "moz-tts:android:ta_IN",
          lang: "ta-IN",
          gender: "female",
        },
        {
          name: "Japanese (Japan)",
          voiceURI: "moz-tts:android:ja_JP",
          lang: "ja-JP",
          gender: "female",
        },
        {
          name: "Albanian",
          voiceURI: "moz-tts:android:sq",
          lang: "sq",
          deprecated: !0,
        },
        {
          name: "Cantonese (Hong Kong)",
          voiceURI: "moz-tts:android:yue_HK",
          lang: "yue-HK",
          gender: "female",
        },
        {
          name: "English (India)",
          voiceURI: "moz-tts:android:en_IN",
          lang: "en-IN",
          gender: "female",
        },
        {
          name: "Spanish (United States)",
          voiceURI: "moz-tts:android:es_US",
          lang: "es-US",
          gender: "female",
        },
        {
          name: "Javanese (Indonesia)",
          voiceURI: "moz-tts:android:jv_ID",
          lang: "jv-ID",
          gender: "female",
        },
        {
          name: "Latin",
          voiceURI: "moz-tts:android:la",
          lang: "la",
          deprecated: !0,
        },
        {
          name: "Indonesian (Indonesia)",
          voiceURI: "moz-tts:android:in_ID",
          lang: "in-ID",
          gender: "female",
        },
        {
          name: "Telugu (India)",
          voiceURI: "moz-tts:android:te_IN",
          lang: "te-IN",
          gender: "female",
        },
        {
          name: "Romanian (Romania)",
          voiceURI: "moz-tts:android:ro_RO",
          lang: "ro-RO",
          gender: "female",
        },
        {
          name: "Catalan",
          voiceURI: "moz-tts:android:ca",
          lang: "ca",
          gender: "female",
        },
        {
          name: "English (United Kingdom)",
          voiceURI: "moz-tts:android:en_GB",
          lang: "en-GB",
          gender: "female",
        },
        {
          name: "Rishi",
          voiceURI: "com.apple.ttsbundle.Rishi-compact",
          lang: "en-IN",
          gender: "male",
        },
      ];
      a.iOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
      a.iOS9 = /(iphone|ipod|ipad).* os 9_/.test(
        navigator.userAgent.toLowerCase()
      );
      a.iOS10 = /(iphone|ipod|ipad).* os 10_/.test(
        navigator.userAgent.toLowerCase()
      );
      a.iOS11 = /(iphone|ipod|ipad).* os 11_/.test(
        navigator.userAgent.toLowerCase()
      );
      a.iOS11plus = /(iphone|ipod|ipad).* os 1[1-9]/.test(
        navigator.userAgent.toLowerCase()
      );
      a.iOS9plus = /(iphone|ipod|ipad).* os 10_/.test(
        navigator.userAgent.toLowerCase()
      );
      a.iOS12_0 = /(iphone|ipod|ipad).* os 12_0/.test(
        navigator.userAgent.toLowerCase()
      );
      a.iOS12 = /(iphone|ipod|ipad).* os 12_/.test(
        navigator.userAgent.toLowerCase()
      );
      a.is_chrome = -1 < navigator.userAgent.indexOf("Chrome");
      a.is_safari = -1 < navigator.userAgent.indexOf("Safari");
      a.is_chrome && a.is_safari && (a.is_safari = !1);
      a.is_opera = !!window.opera || 0 <= navigator.userAgent.indexOf(" OPR/");
      a.is_android = -1 < navigator.userAgent.toLowerCase().indexOf("android");
      a.iOS_initialized = !1;
      a.iOS9_initialized = !1;
      a.iOS10_initialized = !1;
      a.iOS11_initialized = !1;
      a.cache_ios_voices = [
        { name: "he-IL", voiceURI: "he-IL", lang: "he-IL" },
        { name: "th-TH", voiceURI: "th-TH", lang: "th-TH" },
        { name: "pt-BR", voiceURI: "pt-BR", lang: "pt-BR" },
        { name: "sk-SK", voiceURI: "sk-SK", lang: "sk-SK" },
        { name: "fr-CA", voiceURI: "fr-CA", lang: "fr-CA" },
        { name: "ro-RO", voiceURI: "ro-RO", lang: "ro-RO" },
        { name: "no-NO", voiceURI: "no-NO", lang: "no-NO" },
        { name: "fi-FI", voiceURI: "fi-FI", lang: "fi-FI" },
        { name: "pl-PL", voiceURI: "pl-PL", lang: "pl-PL" },
        { name: "de-DE", voiceURI: "de-DE", lang: "de-DE" },
        { name: "nl-NL", voiceURI: "nl-NL", lang: "nl-NL" },
        { name: "id-ID", voiceURI: "id-ID", lang: "id-ID" },
        { name: "tr-TR", voiceURI: "tr-TR", lang: "tr-TR" },
        { name: "it-IT", voiceURI: "it-IT", lang: "it-IT" },
        { name: "pt-PT", voiceURI: "pt-PT", lang: "pt-PT" },
        { name: "fr-FR", voiceURI: "fr-FR", lang: "fr-FR" },
        { name: "ru-RU", voiceURI: "ru-RU", lang: "ru-RU" },
        { name: "es-MX", voiceURI: "es-MX", lang: "es-MX" },
        { name: "zh-HK", voiceURI: "zh-HK", lang: "zh-HK" },
        { name: "sv-SE", voiceURI: "sv-SE", lang: "sv-SE" },
        { name: "hu-HU", voiceURI: "hu-HU", lang: "hu-HU" },
        { name: "zh-TW", voiceURI: "zh-TW", lang: "zh-TW" },
        { name: "es-ES", voiceURI: "es-ES", lang: "es-ES" },
        { name: "zh-CN", voiceURI: "zh-CN", lang: "zh-CN" },
        { name: "nl-BE", voiceURI: "nl-BE", lang: "nl-BE" },
        { name: "en-GB", voiceURI: "en-GB", lang: "en-GB" },
        { name: "ar-SA", voiceURI: "ar-SA", lang: "ar-SA" },
        { name: "ko-KR", voiceURI: "ko-KR", lang: "ko-KR" },
        { name: "cs-CZ", voiceURI: "cs-CZ", lang: "cs-CZ" },
        { name: "en-ZA", voiceURI: "en-ZA", lang: "en-ZA" },
        { name: "en-AU", voiceURI: "en-AU", lang: "en-AU" },
        { name: "da-DK", voiceURI: "da-DK", lang: "da-DK" },
        { name: "en-US", voiceURI: "en-US", lang: "en-US" },
        { name: "en-IE", voiceURI: "en-IE", lang: "en-IE" },
        { name: "hi-IN", voiceURI: "hi-IN", lang: "hi-IN" },
        { name: "el-GR", voiceURI: "el-GR", lang: "el-GR" },
        { name: "ja-JP", voiceURI: "ja-JP", lang: "ja-JP" },
      ];
      a.cache_ios9_voices = [
        {
          name: "Maged",
          voiceURI: "com.apple.ttsbundle.Maged-compact",
          lang: "ar-SA",
          localService: !0,
          default: !0,
        },
        {
          name: "Zuzana",
          voiceURI: "com.apple.ttsbundle.Zuzana-compact",
          lang: "cs-CZ",
          localService: !0,
          default: !0,
        },
        {
          name: "Sara",
          voiceURI: "com.apple.ttsbundle.Sara-compact",
          lang: "da-DK",
          localService: !0,
          default: !0,
        },
        {
          name: "Anna",
          voiceURI: "com.apple.ttsbundle.Anna-compact",
          lang: "de-DE",
          localService: !0,
          default: !0,
        },
        {
          name: "Melina",
          voiceURI: "com.apple.ttsbundle.Melina-compact",
          lang: "el-GR",
          localService: !0,
          default: !0,
        },
        {
          name: "Karen",
          voiceURI: "com.apple.ttsbundle.Karen-compact",
          lang: "en-AU",
          localService: !0,
          default: !0,
        },
        {
          name: "Daniel",
          voiceURI: "com.apple.ttsbundle.Daniel-compact",
          lang: "en-GB",
          localService: !0,
          default: !0,
        },
        {
          name: "Moira",
          voiceURI: "com.apple.ttsbundle.Moira-compact",
          lang: "en-IE",
          localService: !0,
          default: !0,
        },
        {
          name: "Samantha (Enhanced)",
          voiceURI: "com.apple.ttsbundle.Samantha-premium",
          lang: "en-US",
          localService: !0,
          default: !0,
        },
        {
          name: "Samantha",
          voiceURI: "com.apple.ttsbundle.Samantha-compact",
          lang: "en-US",
          localService: !0,
          default: !0,
        },
        {
          name: "Tessa",
          voiceURI: "com.apple.ttsbundle.Tessa-compact",
          lang: "en-ZA",
          localService: !0,
          default: !0,
        },
        {
          name: "Monica",
          voiceURI: "com.apple.ttsbundle.Monica-compact",
          lang: "es-ES",
          localService: !0,
          default: !0,
        },
        {
          name: "Paulina",
          voiceURI: "com.apple.ttsbundle.Paulina-compact",
          lang: "es-MX",
          localService: !0,
          default: !0,
        },
        {
          name: "Satu",
          voiceURI: "com.apple.ttsbundle.Satu-compact",
          lang: "fi-FI",
          localService: !0,
          default: !0,
        },
        {
          name: "Amelie",
          voiceURI: "com.apple.ttsbundle.Amelie-compact",
          lang: "fr-CA",
          localService: !0,
          default: !0,
        },
        {
          name: "Thomas",
          voiceURI: "com.apple.ttsbundle.Thomas-compact",
          lang: "fr-FR",
          localService: !0,
          default: !0,
        },
        {
          name: "Carmit",
          voiceURI: "com.apple.ttsbundle.Carmit-compact",
          lang: "he-IL",
          localService: !0,
          default: !0,
        },
        {
          name: "Lekha",
          voiceURI: "com.apple.ttsbundle.Lekha-compact",
          lang: "hi-IN",
          localService: !0,
          default: !0,
        },
        {
          name: "Mariska",
          voiceURI: "com.apple.ttsbundle.Mariska-compact",
          lang: "hu-HU",
          localService: !0,
          default: !0,
        },
        {
          name: "Damayanti",
          voiceURI: "com.apple.ttsbundle.Damayanti-compact",
          lang: "id-ID",
          localService: !0,
          default: !0,
        },
        {
          name: "Alice",
          voiceURI: "com.apple.ttsbundle.Alice-compact",
          lang: "it-IT",
          localService: !0,
          default: !0,
        },
        {
          name: "Kyoko",
          voiceURI: "com.apple.ttsbundle.Kyoko-compact",
          lang: "ja-JP",
          localService: !0,
          default: !0,
        },
        {
          name: "Yuna",
          voiceURI: "com.apple.ttsbundle.Yuna-compact",
          lang: "ko-KR",
          localService: !0,
          default: !0,
        },
        {
          name: "Ellen",
          voiceURI: "com.apple.ttsbundle.Ellen-compact",
          lang: "nl-BE",
          localService: !0,
          default: !0,
        },
        {
          name: "Xander",
          voiceURI: "com.apple.ttsbundle.Xander-compact",
          lang: "nl-NL",
          localService: !0,
          default: !0,
        },
        {
          name: "Nora",
          voiceURI: "com.apple.ttsbundle.Nora-compact",
          lang: "no-NO",
          localService: !0,
          default: !0,
        },
        {
          name: "Zosia",
          voiceURI: "com.apple.ttsbundle.Zosia-compact",
          lang: "pl-PL",
          localService: !0,
          default: !0,
        },
        {
          name: "Luciana",
          voiceURI: "com.apple.ttsbundle.Luciana-compact",
          lang: "pt-BR",
          localService: !0,
          default: !0,
        },
        {
          name: "Joana",
          voiceURI: "com.apple.ttsbundle.Joana-compact",
          lang: "pt-PT",
          localService: !0,
          default: !0,
        },
        {
          name: "Ioana",
          voiceURI: "com.apple.ttsbundle.Ioana-compact",
          lang: "ro-RO",
          localService: !0,
          default: !0,
        },
        {
          name: "Milena",
          voiceURI: "com.apple.ttsbundle.Milena-compact",
          lang: "ru-RU",
          localService: !0,
          default: !0,
        },
        {
          name: "Laura",
          voiceURI: "com.apple.ttsbundle.Laura-compact",
          lang: "sk-SK",
          localService: !0,
          default: !0,
        },
        {
          name: "Alva",
          voiceURI: "com.apple.ttsbundle.Alva-compact",
          lang: "sv-SE",
          localService: !0,
          default: !0,
        },
        {
          name: "Kanya",
          voiceURI: "com.apple.ttsbundle.Kanya-compact",
          lang: "th-TH",
          localService: !0,
          default: !0,
        },
        {
          name: "Yelda",
          voiceURI: "com.apple.ttsbundle.Yelda-compact",
          lang: "tr-TR",
          localService: !0,
          default: !0,
        },
        {
          name: "Ting-Ting",
          voiceURI: "com.apple.ttsbundle.Ting-Ting-compact",
          lang: "zh-CN",
          localService: !0,
          default: !0,
        },
        {
          name: "Sin-Ji",
          voiceURI: "com.apple.ttsbundle.Sin-Ji-compact",
          lang: "zh-HK",
          localService: !0,
          default: !0,
        },
        {
          name: "Mei-Jia",
          voiceURI: "com.apple.ttsbundle.Mei-Jia-compact",
          lang: "zh-TW",
          localService: !0,
          default: !0,
        },
      ];
      a.cache_ios10_voices = [
        {
          name: "Maged",
          voiceURI: "com.apple.ttsbundle.Maged-compact",
          lang: "ar-SA",
        },
        {
          name: "Zuzana",
          voiceURI: "com.apple.ttsbundle.Zuzana-compact",
          lang: "cs-CZ",
        },
        {
          name: "Sara",
          voiceURI: "com.apple.ttsbundle.Sara-compact",
          lang: "da-DK",
        },
        {
          name: "Anna",
          voiceURI: "com.apple.ttsbundle.Anna-compact",
          lang: "de-DE",
        },
        {
          name: "Helena",
          voiceURI: "com.apple.ttsbundle.siri_female_de-DE_compact",
          lang: "de-DE",
        },
        {
          name: "Martin",
          voiceURI: "com.apple.ttsbundle.siri_male_de-DE_compact",
          lang: "de-DE",
        },
        {
          name: "Nikos (Enhanced)",
          voiceURI: "com.apple.ttsbundle.Nikos-premium",
          lang: "el-GR",
        },
        {
          name: "Melina",
          voiceURI: "com.apple.ttsbundle.Melina-compact",
          lang: "el-GR",
        },
        {
          name: "Nikos",
          voiceURI: "com.apple.ttsbundle.Nikos-compact",
          lang: "el-GR",
        },
        {
          name: "Catherine",
          voiceURI: "com.apple.ttsbundle.siri_female_en-AU_compact",
          lang: "en-AU",
        },
        {
          name: "Gordon",
          voiceURI: "com.apple.ttsbundle.siri_male_en-AU_compact",
          lang: "en-AU",
        },
        {
          name: "Karen",
          voiceURI: "com.apple.ttsbundle.Karen-compact",
          lang: "en-AU",
        },
        {
          name: "Daniel (Enhanced)",
          voiceURI: "com.apple.ttsbundle.Daniel-premium",
          lang: "en-GB",
        },
        {
          name: "Arthur",
          voiceURI: "com.apple.ttsbundle.siri_male_en-GB_compact",
          lang: "en-GB",
        },
        {
          name: "Daniel",
          voiceURI: "com.apple.ttsbundle.Daniel-compact",
          lang: "en-GB",
        },
        {
          name: "Martha",
          voiceURI: "com.apple.ttsbundle.siri_female_en-GB_compact",
          lang: "en-GB",
        },
        {
          name: "Moira",
          voiceURI: "com.apple.ttsbundle.Moira-compact",
          lang: "en-IE",
        },
        {
          name: "Nicky (Enhanced)",
          voiceURI: "com.apple.ttsbundle.siri_female_en-US_premium",
          lang: "en-US",
        },
        {
          name: "Samantha (Enhanced)",
          voiceURI: "com.apple.ttsbundle.Samantha-premium",
          lang: "en-US",
        },
        {
          name: "Aaron",
          voiceURI: "com.apple.ttsbundle.siri_male_en-US_compact",
          lang: "en-US",
        },
        {
          name: "Fred",
          voiceURI: "com.apple.speech.synthesis.voice.Fred",
          lang: "en-US",
        },
        {
          name: "Nicky",
          voiceURI: "com.apple.ttsbundle.siri_female_en-US_compact",
          lang: "en-US",
        },
        {
          name: "Samantha",
          voiceURI: "com.apple.ttsbundle.Samantha-compact",
          lang: "en-US",
        },
        {
          name: "Tessa",
          voiceURI: "com.apple.ttsbundle.Tessa-compact",
          lang: "en-ZA",
        },
        {
          name: "Monica",
          voiceURI: "com.apple.ttsbundle.Monica-compact",
          lang: "es-ES",
        },
        {
          name: "Paulina",
          voiceURI: "com.apple.ttsbundle.Paulina-compact",
          lang: "es-MX",
        },
        {
          name: "Satu",
          voiceURI: "com.apple.ttsbundle.Satu-compact",
          lang: "fi-FI",
        },
        {
          name: "Amelie",
          voiceURI: "com.apple.ttsbundle.Amelie-compact",
          lang: "fr-CA",
        },
        {
          name: "Daniel",
          voiceURI: "com.apple.ttsbundle.siri_male_fr-FR_compact",
          lang: "fr-FR",
        },
        {
          name: "Marie",
          voiceURI: "com.apple.ttsbundle.siri_female_fr-FR_compact",
          lang: "fr-FR",
        },
        {
          name: "Thomas",
          voiceURI: "com.apple.ttsbundle.Thomas-compact",
          lang: "fr-FR",
        },
        {
          name: "Carmit",
          voiceURI: "com.apple.ttsbundle.Carmit-compact",
          lang: "he-IL",
        },
        {
          name: "Lekha",
          voiceURI: "com.apple.ttsbundle.Lekha-compact",
          lang: "hi-IN",
        },
        {
          name: "Mariska",
          voiceURI: "com.apple.ttsbundle.Mariska-compact",
          lang: "hu-HU",
        },
        {
          name: "Damayanti",
          voiceURI: "com.apple.ttsbundle.Damayanti-compact",
          lang: "id-ID",
        },
        {
          name: "Alice",
          voiceURI: "com.apple.ttsbundle.Alice-compact",
          lang: "it-IT",
        },
        {
          name: "Hattori",
          voiceURI: "com.apple.ttsbundle.siri_male_ja-JP_compact",
          lang: "ja-JP",
        },
        {
          name: "Kyoko",
          voiceURI: "com.apple.ttsbundle.Kyoko-compact",
          lang: "ja-JP",
        },
        {
          name: "O-ren",
          voiceURI: "com.apple.ttsbundle.siri_female_ja-JP_compact",
          lang: "ja-JP",
        },
        {
          name: "Yuna",
          voiceURI: "com.apple.ttsbundle.Yuna-compact",
          lang: "ko-KR",
        },
        {
          name: "Ellen",
          voiceURI: "com.apple.ttsbundle.Ellen-compact",
          lang: "nl-BE",
        },
        {
          name: "Xander",
          voiceURI: "com.apple.ttsbundle.Xander-compact",
          lang: "nl-NL",
        },
        {
          name: "Nora",
          voiceURI: "com.apple.ttsbundle.Nora-compact",
          lang: "no-NO",
        },
        {
          name: "Zosia",
          voiceURI: "com.apple.ttsbundle.Zosia-compact",
          lang: "pl-PL",
        },
        {
          name: "Luciana",
          voiceURI: "com.apple.ttsbundle.Luciana-compact",
          lang: "pt-BR",
        },
        {
          name: "Joana",
          voiceURI: "com.apple.ttsbundle.Joana-compact",
          lang: "pt-PT",
        },
        {
          name: "Ioana",
          voiceURI: "com.apple.ttsbundle.Ioana-compact",
          lang: "ro-RO",
        },
        {
          name: "Milena",
          voiceURI: "com.apple.ttsbundle.Milena-compact",
          lang: "ru-RU",
        },
        {
          name: "Laura",
          voiceURI: "com.apple.ttsbundle.Laura-compact",
          lang: "sk-SK",
        },
        {
          name: "Alva",
          voiceURI: "com.apple.ttsbundle.Alva-compact",
          lang: "sv-SE",
        },
        {
          name: "Kanya",
          voiceURI: "com.apple.ttsbundle.Kanya-compact",
          lang: "th-TH",
        },
        {
          name: "Yelda",
          voiceURI: "com.apple.ttsbundle.Yelda-compact",
          lang: "tr-TR",
        },
        {
          name: "Li-mu",
          voiceURI: "com.apple.ttsbundle.siri_male_zh-CN_compact",
          lang: "zh-CN",
        },
        {
          name: "Ting-Ting",
          voiceURI: "com.apple.ttsbundle.Ting-Ting-compact",
          lang: "zh-CN",
        },
        {
          name: "Yu-shu",
          voiceURI: "com.apple.ttsbundle.siri_female_zh-CN_compact",
          lang: "zh-CN",
        },
        {
          name: "Sin-Ji",
          voiceURI: "com.apple.ttsbundle.Sin-Ji-compact",
          lang: "zh-HK",
        },
        {
          name: "Mei-Jia",
          voiceURI: "com.apple.ttsbundle.Mei-Jia-compact",
          lang: "zh-TW",
        },
      ];
      a.cache_ios11_voices = [
        {
          name: "Maged",
          voiceURI: "com.apple.ttsbundle.Maged-compact",
          lang: "ar-SA",
        },
        {
          name: "Zuzana",
          voiceURI: "com.apple.ttsbundle.Zuzana-compact",
          lang: "cs-CZ",
        },
        {
          name: "Sara",
          voiceURI: "com.apple.ttsbundle.Sara-compact",
          lang: "da-DK",
        },
        {
          name: "Anna",
          voiceURI: "com.apple.ttsbundle.Anna-compact",
          lang: "de-DE",
        },
        {
          name: "Helena",
          voiceURI: "com.apple.ttsbundle.siri_female_de-DE_compact",
          lang: "de-DE",
        },
        {
          name: "Martin",
          voiceURI: "com.apple.ttsbundle.siri_male_de-DE_compact",
          lang: "de-DE",
        },
        {
          name: "Melina",
          voiceURI: "com.apple.ttsbundle.Melina-compact",
          lang: "el-GR",
        },
        {
          name: "Catherine",
          voiceURI: "com.apple.ttsbundle.siri_female_en-AU_compact",
          lang: "en-AU",
        },
        {
          name: "Gordon",
          voiceURI: "com.apple.ttsbundle.siri_male_en-AU_compact",
          lang: "en-AU",
        },
        {
          name: "Karen",
          voiceURI: "com.apple.ttsbundle.Karen-compact",
          lang: "en-AU",
        },
        {
          name: "Arthur",
          voiceURI: "com.apple.ttsbundle.siri_male_en-GB_compact",
          lang: "en-GB",
        },
        {
          name: "Daniel",
          voiceURI: "com.apple.ttsbundle.Daniel-compact",
          lang: "en-GB",
        },
        {
          name: "Martha",
          voiceURI: "com.apple.ttsbundle.siri_female_en-GB_compact",
          lang: "en-GB",
        },
        {
          name: "Moira",
          voiceURI: "com.apple.ttsbundle.Moira-compact",
          lang: "en-IE",
        },
        {
          name: "Aaron",
          voiceURI: "com.apple.ttsbundle.siri_male_en-US_compact",
          lang: "en-US",
        },
        {
          name: "Fred",
          voiceURI: "com.apple.speech.synthesis.voice.Fred",
          lang: "en-US",
        },
        {
          name: "Nicky",
          voiceURI: "com.apple.ttsbundle.siri_female_en-US_compact",
          lang: "en-US",
        },
        {
          name: "Samantha",
          voiceURI: "com.apple.ttsbundle.Samantha-compact",
          lang: "en-US",
        },
        {
          name: "Tessa",
          voiceURI: "com.apple.ttsbundle.Tessa-compact",
          lang: "en-ZA",
        },
        {
          name: "Monica",
          voiceURI: "com.apple.ttsbundle.Monica-compact",
          lang: "es-ES",
        },
        {
          name: "Paulina",
          voiceURI: "com.apple.ttsbundle.Paulina-compact",
          lang: "es-MX",
        },
        {
          name: "Satu",
          voiceURI: "com.apple.ttsbundle.Satu-compact",
          lang: "fi-FI",
        },
        {
          name: "Amelie",
          voiceURI: "com.apple.ttsbundle.Amelie-compact",
          lang: "fr-CA",
        },
        {
          name: "Daniel",
          voiceURI: "com.apple.ttsbundle.siri_male_fr-FR_compact",
          lang: "fr-FR",
        },
        {
          name: "Marie",
          voiceURI: "com.apple.ttsbundle.siri_female_fr-FR_compact",
          lang: "fr-FR",
        },
        {
          name: "Thomas",
          voiceURI: "com.apple.ttsbundle.Thomas-compact",
          lang: "fr-FR",
        },
        {
          name: "Carmit",
          voiceURI: "com.apple.ttsbundle.Carmit-compact",
          lang: "he-IL",
        },
        {
          name: "Lekha",
          voiceURI: "com.apple.ttsbundle.Lekha-compact",
          lang: "hi-IN",
        },
        {
          name: "Mariska",
          voiceURI: "com.apple.ttsbundle.Mariska-compact",
          lang: "hu-HU",
        },
        {
          name: "Damayanti",
          voiceURI: "com.apple.ttsbundle.Damayanti-compact",
          lang: "id-ID",
        },
        {
          name: "Alice",
          voiceURI: "com.apple.ttsbundle.Alice-compact",
          lang: "it-IT",
        },
        {
          name: "Hattori",
          voiceURI: "com.apple.ttsbundle.siri_male_ja-JP_compact",
          lang: "ja-JP",
        },
        {
          name: "Kyoko",
          voiceURI: "com.apple.ttsbundle.Kyoko-compact",
          lang: "ja-JP",
        },
        {
          name: "O-ren",
          voiceURI: "com.apple.ttsbundle.siri_female_ja-JP_compact",
          lang: "ja-JP",
        },
        {
          name: "Yuna",
          voiceURI: "com.apple.ttsbundle.Yuna-compact",
          lang: "ko-KR",
        },
        {
          name: "Ellen",
          voiceURI: "com.apple.ttsbundle.Ellen-compact",
          lang: "nl-BE",
        },
        {
          name: "Xander",
          voiceURI: "com.apple.ttsbundle.Xander-compact",
          lang: "nl-NL",
        },
        {
          name: "Nora",
          voiceURI: "com.apple.ttsbundle.Nora-compact",
          lang: "no-NO",
        },
        {
          name: "Zosia",
          voiceURI: "com.apple.ttsbundle.Zosia-compact",
          lang: "pl-PL",
        },
        {
          name: "Luciana",
          voiceURI: "com.apple.ttsbundle.Luciana-compact",
          lang: "pt-BR",
        },
        {
          name: "Joana",
          voiceURI: "com.apple.ttsbundle.Joana-compact",
          lang: "pt-PT",
        },
        {
          name: "Ioana",
          voiceURI: "com.apple.ttsbundle.Ioana-compact",
          lang: "ro-RO",
        },
        {
          name: "Milena",
          voiceURI: "com.apple.ttsbundle.Milena-compact",
          lang: "ru-RU",
        },
        {
          name: "Laura",
          voiceURI: "com.apple.ttsbundle.Laura-compact",
          lang: "sk-SK",
        },
        {
          name: "Alva",
          voiceURI: "com.apple.ttsbundle.Alva-compact",
          lang: "sv-SE",
        },
        {
          name: "Kanya",
          voiceURI: "com.apple.ttsbundle.Kanya-compact",
          lang: "th-TH",
        },
        {
          name: "Yelda",
          voiceURI: "com.apple.ttsbundle.Yelda-compact",
          lang: "tr-TR",
        },
        {
          name: "Li-mu",
          voiceURI: "com.apple.ttsbundle.siri_male_zh-CN_compact",
          lang: "zh-CN",
        },
        {
          name: "Ting-Ting",
          voiceURI: "com.apple.ttsbundle.Ting-Ting-compact",
          lang: "zh-CN",
        },
        {
          name: "Yu-shu",
          voiceURI: "com.apple.ttsbundle.siri_female_zh-CN_compact",
          lang: "zh-CN",
        },
        {
          name: "Sin-Ji",
          voiceURI: "com.apple.ttsbundle.Sin-Ji-compact",
          lang: "zh-HK",
        },
        {
          name: "Mei-Jia",
          voiceURI: "com.apple.ttsbundle.Mei-Jia-compact",
          lang: "zh-TW",
        },
      ];
      a.systemvoices = null;
      a.CHARACTER_LIMIT = 100;
      a.VOICESUPPORT_ATTEMPTLIMIT = 5;
      a.voicesupport_attempts = 0;
      a.fallbackMode = !1;
      a.WORDS_PER_MINUTE = 130;
      a.fallback_audio = null;
      a.fallback_playbackrate = 1;
      a.def_fallback_playbackrate = a.fallback_playbackrate;
      a.fallback_audiopool = [];
      a.msgparameters = null;
      a.timeoutId = null;
      a.OnLoad_callbacks = [];
      a.useTimer = !1;
      a.utterances = [];
      a.userInteractionEvents = [
        "mousedown",
        "mouseup",
        "mousewheel",
        "keydown",
      ];
      a.fallbackBufferLength = 5;
      a.iOS && (a.fallbackBufferLength = 2);
      var q = null,
        z = 1;
      a.tstCompiled = function () {
        return !/param/.test(function (b) {});
      };
      a.fallbackServicePath =
        "undefined" != typeof rvApiEndpoint && rvApiEndpoint
          ? rvApiEndpoint
          : "https://code.responsivevoice.org/" +
            (a.tstCompiled() ? "" : "develop/") +
            "getvoice.php";
      a.default_rv = a.responsivevoices[0];
      a.debug = !1;
      a.rvsMapped = !1;
      a.forcedFallbackMode = !1;
      a.speechAllowedByUser = !0;
      a.enableEstimationTimeout = !0;
      a.analytics = { characterCount: 0 };
      a.log = function (b) {
        a.debug && console.log(b);
      };
      a.init = function () {
        a.is_wordpress = m();
        a.is_bundle = l();
        "undefined" == typeof rvApiKey &&
          console.error(
            "ResponsiveVoice missing API key. See https://responsivevoice.org/register?devtools=" +
              encodeURIComponent(window.location.href)
          );
        if (a.is_android || a.iOS || a.is_safari) a.useTimer = !0;
        a.is_opera || "undefined" === typeof speechSynthesis
          ? (console.log("RV: Voice synthesis not supported"),
            a.enableFallbackMode())
          : setTimeout(function () {
              var b = setInterval(function () {
                var c = window.speechSynthesis.getVoices();
                0 != c.length ||
                (null != a.systemvoices && 0 != a.systemvoices.length)
                  ? (console.log("RV: Voice support ready"),
                    a.systemVoicesReady(c),
                    clearInterval(b))
                  : (console.log("Voice support NOT ready"),
                    a.voicesupport_attempts++,
                    a.voicesupport_attempts > a.VOICESUPPORT_ATTEMPTLIMIT &&
                      (clearInterval(b),
                      null != window.speechSynthesis
                        ? a.iOS
                          ? (a.iOS11plus
                              ? a.systemVoicesReady(a.cache_ios11_voices)
                              : a.iOS10
                              ? a.systemVoicesReady(a.cache_ios10_voices)
                              : a.iOS9
                              ? a.systemVoicesReady(a.cache_ios9_voices)
                              : a.systemVoicesReady(a.cache_ios_voices),
                            console.log("RV: Voice support ready (cached)"))
                          : (console.log(
                              "RV: speechSynthesis present but no system voices found"
                            ),
                            a.enableFallbackMode())
                        : a.enableFallbackMode()));
              }, 100);
            }, 100);
        (a.iOS || a.is_android || a.is_safari) && a.enableWindowClickHook();
        a.Dispatch("OnLoad");
      };
      a.systemVoicesReady = function (b) {
        a.systemvoices = b;
        a.mapRVs();
        null != a.OnVoiceReady && a.OnVoiceReady.call();
        a.Dispatch("OnReady");
        window.hasOwnProperty("dispatchEvent") &&
          window.dispatchEvent(new Event("ResponsiveVoice_OnReady"));
      };
      a.enableFallbackMode = function () {
        a.fallbackMode = !0;
        a.forcedFallbackMode = !0;
        console.log("RV: Enabling fallback mode");
        a.mapRVs();
        null != a.OnVoiceReady && a.OnVoiceReady.call();
        a.Dispatch("OnReady");
        window.hasOwnProperty("dispatchEvent") &&
          window.dispatchEvent(new Event("ResponsiveVoice_OnReady"));
        a.Dispatch("OnServiceSwitched");
      };
      a.getVoices = function () {
        for (var b = [], c = 0; c < a.responsivevoices.length; c++) {
          var d = a.responsivevoices[c];
          !0 !== d.deprecated && b.push({ name: d.name });
        }
        return b;
      };
      a.speak = function (b, c, d) {
        if (null == b) a.log("No text provided");
        else if (
          (a.initializePermissionsTimeout &&
            clearTimeout(a.initializePermissionsTimeout),
          a.rvsMapped)
        ) {
          var e = function (B) {
              -1 != B.search(/[\u3002]/gm)
                ? B.split(/[\u3002]/).filter(function (F) {
                    F && r.push(F);
                  })
                : r.push(B);
            },
            n = null;
          if (a.isPlaying())
            a.log("Cancelling previous speech"),
              a.cancel(),
              setTimeout(function () {
                a.speak(b, c, d);
              }, 50);
          else {
            if (null == c) {
              var g = a.default_rv;
              a.setDefaultVoice(g.name);
            } else g = a.getResponsiveVoice(c);
            if (g) {
              !0 === g.deprecated &&
                console.warn(
                  'ResponsiveVoice: Voice "' +
                    g.name +
                    '" is deprecated; it might not always be the right gender, and could be removed in future releases'
                );
              var h = {};
              if (null != g.mappedProfile) h = g.mappedProfile;
              else if (
                ((h.systemvoice = a.getMatchedVoice(g)),
                (h.collectionvoice = {}),
                null == h.systemvoice)
              ) {
                console.log("RV: ERROR: No voice found for: " + c);
                return;
              }
              b = k(b, h);
              b = b.replace(/["`]/gm, "'");
              a.msgparameters = d || {};
              a.msgtext = b;
              a.msgvoicename = c;
              a.onstartFired = !1;
              var r = [];
              if (b.length > a.CHARACTER_LIMIT) {
                for (var p = (b = f(b)); p.length > a.CHARACTER_LIMIT; ) {
                  g = p.search(
                    /([\u3002:!\u00a1?\u00bf;\(\)\[\]\u2014\u00ab\u00bb\n]+|\.[^0-9]+)/
                  );
                  var u = "";
                  if (-1 == g || g >= a.CHARACTER_LIMIT)
                    g = p.search(/,[^0-9]+/);
                  if (
                    (-1 == g || g >= a.CHARACTER_LIMIT) &&
                    -1 != p.search(" ")
                  ) {
                    var A = p.split(" ");
                    for (g = 0; g < A.length; g++) {
                      if (u.length + A[g].length + 1 > a.CHARACTER_LIMIT) {
                        A[g].length >= a.CHARACTER_LIMIT &&
                          (u += A[g].substr(
                            0,
                            a.CHARACTER_LIMIT - u.length - 1
                          ));
                        break;
                      }
                      u += (0 != g ? " " : "") + A[g];
                    }
                  } else {
                    if (-1 == g || g >= a.CHARACTER_LIMIT)
                      g = a.CHARACTER_LIMIT - 1;
                    u = p.substr(0, g + 1);
                  }
                  p = p.substr(u.length, p.length - u.length);
                  r.push(u);
                }
                0 < p.length && e(p);
              } else e(b);
              console.log(r);
              a.multipartText = r;
              if (a.checkSpeechAllowed()) {
                a.fallbackMode &&
                  0 < a.fallback_audiopool.length &&
                  a.clearFallbackPool();
                a.msgprofile = h;
                a.log("Voice picked: " + a.msgprofile.systemvoice.name);
                a.utterances = [];
                a.fallbackChunks = [];
                for (g = 0; g < r.length; g++)
                  if (
                    !a.fallbackMode &&
                    a.getServiceEnabled(a.services.NATIVE_TTS)
                  )
                    a.log("Using SpeechSynthesis"),
                      (n = a.services.NATIVE_TTS),
                      (e = new SpeechSynthesisUtterance()),
                      (e.voiceURI = h.systemvoice.voiceURI),
                      (e.volume = a.selectBest([
                        h.collectionvoice.volume,
                        h.systemvoice.volume,
                        1,
                      ])),
                      (e.rate = a.selectBest([
                        a.iOS9plus ? 1 : null,
                        h.collectionvoice.rate,
                        h.systemvoice.rate,
                        z,
                      ])),
                      (e.pitch = a.selectBest([
                        h.collectionvoice.pitch,
                        h.systemvoice.pitch,
                        1,
                      ])),
                      (e.text = r[g]),
                      (e.lang = a.selectBest([
                        h.collectionvoice.lang,
                        h.systemvoice.lang,
                      ])),
                      (e.rvIndex = g),
                      (e.rvTotal = r.length),
                      0 == g && (e.onstart = a.speech_onstart),
                      (a.msgparameters.onendcalled = !1),
                      null != d
                        ? ((e.voice =
                            "undefined" !== typeof d.voice
                              ? d.voice
                              : h.systemvoice),
                          g < r.length - 1 && 1 < r.length
                            ? ((e.onend = a.onPartEnd),
                              e.hasOwnProperty("addEventListener") &&
                                e.addEventListener("end", a.onPartEnd))
                            : ((e.onend = a.speech_onend),
                              e.hasOwnProperty("addEventListener") &&
                                e.addEventListener("end", a.speech_onend)),
                          (e.onerror =
                            d.onerror ||
                            function (B) {
                              a.log("RV: Unknown Error");
                              a.log(B);
                              "not-allowed" === B.error &&
                                ((a.speechSynthesisNotAllowedError = !0),
                                a.speak(b, c, d));
                            }),
                          (d.rate = a.validateParameters(d, "rate")),
                          (d.pitch = a.validateParameters(d, "pitch")),
                          (d.volume = a.validateParameters(d, "volume")),
                          (e.onpause = d.onpause),
                          (e.onresume = d.onresume),
                          (e.onmark = d.onmark),
                          (e.onboundary = d.onboundary || a.onboundary),
                          (e.pitch = null != d.pitch ? d.pitch : e.pitch),
                          (e.rate = a.iOS
                            ? (null != d.rate ? d.rate * d.rate : 1) * e.rate
                            : (null != d.rate ? d.rate : z) * e.rate),
                          (e.volume = null != d.volume ? d.volume : e.volume))
                        : (a.log("No Params received for current Utterance"),
                          (e.voice = h.systemvoice),
                          (d = d || {}),
                          (e.onend = a.speech_onend),
                          (e.onboundary = a.onboundary),
                          (e.onerror = function (B) {
                            a.log("RV: Unknown Error");
                            a.log(B);
                            "not-allowed" === B.error &&
                              ((a.speechSynthesisNotAllowedError = !0),
                              a.speak(b, c, d));
                          })),
                      a.utterances.push(e),
                      0 == g && (a.currentMsg = e),
                      console.log(e),
                      a.tts_speak(e);
                  else if (
                    a.fallbackMode &&
                    a.getServiceEnabled(a.services.FALLBACK_AUDIO)
                  ) {
                    n = a.services.FALLBACK_AUDIO;
                    a.fallback_playbackrate = a.def_fallback_playbackrate;
                    e = a.selectBest([
                      h.collectionvoice.pitch,
                      h.systemvoice.pitch,
                      1,
                    ]);
                    p = a.selectBest([
                      a.iOS9plus ? 1 : null,
                      h.collectionvoice.rate,
                      h.systemvoice.rate,
                      1,
                    ]);
                    u = a.selectBest([
                      h.collectionvoice.volume,
                      h.systemvoice.volume,
                      1,
                    ]);
                    if (null != d) {
                      e *= null != d.pitch ? d.pitch : 1;
                      p *= null != d.rate ? d.rate : 1;
                      u *= null != d.volume ? d.volume : 1;
                      var G = d.extraParams || null;
                    }
                    e /= 2;
                    p /= 2;
                    u *= 2;
                    e = Math.min(Math.max(e, 0), 1);
                    p = Math.min(Math.max(p, 0), 1);
                    u = Math.min(Math.max(u, 0), 1);
                    A =
                      "?t=" +
                      encodeURIComponent(r[g]) +
                      "&tl=" +
                      (h.collectionvoice.lang ||
                        h.systemvoice.lang ||
                        "en-US") +
                      "&sv=" +
                      (h.collectionvoice.service ||
                        h.systemvoice.service ||
                        "") +
                      "&vn=" +
                      (h.collectionvoice.voicename ||
                        h.systemvoice.voicename ||
                        "") +
                      "&pitch=" +
                      e.toString() +
                      "&rate=" +
                      p.toString() +
                      "&vol=" +
                      u.toString();
                    "undefined" != typeof rvApiEndpoint &&
                      rvApiEndpoint &&
                      (A =
                        "?text=" +
                        encodeURIComponent(r[g]) +
                        "&lang=" +
                        (h.collectionvoice.lang ||
                          h.systemvoice.lang ||
                          "en-US") +
                        "&engine=" +
                        (h.collectionvoice.service ||
                          h.systemvoice.service ||
                          "") +
                        "&name=" +
                        (h.collectionvoice.voicename ||
                          h.systemvoice.voicename ||
                          "") +
                        "&pitch=" +
                        e.toString() +
                        "&rate=" +
                        p.toString() +
                        "&volume=" +
                        u.toString());
                    e = a.fallbackServicePath + A;
                    "undefined" != typeof rvApiKey && (e += "&key=" + rvApiKey);
                    "undefined" == typeof rvApiKey &&
                      a.is_bundle &&
                      (e += "&key=FQ9r4hgY");
                    "undefined" == typeof rvApiKey &&
                      a.is_wordpress &&
                      (e += "&key=HY7lTyiS");
                    void 0 !== h.collectionvoice.gender &&
                      (e += "&gender=" + h.collectionvoice.gender);
                    G && (e += "&extraParams=" + JSON.stringify(G));
                    a.fallbackChunks.push({ text: r[g], url: e, audio: null });
                  }
                a.fallbackMode &&
                  a.getServiceEnabled(a.services.FALLBACK_AUDIO) &&
                  ((a.fallbackChunkIndex = 0), a.fallback_startPart());
                a.log("Service used: " + n);
              } else
                a.scheduledSpeak = { text: b, voicename: c, parameters: d };
            } else
              console.error("Selected voice does not exist: " + c),
                a.Dispatch("OnMissingVoiceError", { voice: c });
          }
        } else
          setTimeout(function () {
            a.speak(b, c, d);
          }, 15);
      };
      a.startTimeout = function (b, c) {
        var d = a.msgprofile.collectionvoice.timerSpeed;
        null == a.msgprofile.collectionvoice.timerSpeed && (d = 1);
        0 >= d ||
          ((a.timeoutId = setTimeout(c, a.getEstimatedTimeLength(b, d))),
          a.log("Timeout ID: " + a.timeoutId));
      };
      a.checkAndCancelTimeout = function () {
        null != a.timeoutId &&
          (clearTimeout(a.timeoutId), (a.timeoutId = null));
      };
      a.speech_timedout = function () {
        a.cancel();
        a.cancelled = !1;
        a.speech_onend();
      };
      a.speech_onend = function () {
        a.checkAndCancelTimeout();
        !0 === a.cancelled
          ? (a.cancelled = !1)
          : (a.log("on end fired"),
            null != a.msgparameters &&
              null != a.msgparameters.onend &&
              1 != a.msgparameters.onendcalled &&
              (a.log("Speech on end called  -" + a.msgtext),
              (a.msgparameters.onendcalled = !0),
              a.msgparameters.onend()));
      };
      a.speech_onstart = function () {
        if (
          !a.onstartFired &&
          ((a.onstartFired = !0),
          a.log("Speech start"),
          a.enableEstimationTimeout &&
            a.useTimer &&
            (a.fallbackMode || a.startTimeout(a.msgtext, a.speech_timedout)),
          (a.msgparameters.onendcalled = !1),
          null != a.msgparameters && null != a.msgparameters.onstart)
        )
          a.msgparameters.onstart();
      };
      a.fallback_startPart = function () {
        0 == a.fallbackChunkIndex && a.speech_onstart();
        a.fallback_updateChunksBuffer();
        a.fallback_audio = a.fallbackChunks[a.fallbackChunkIndex].audio;
        null == a.fallback_audio
          ? a.log("RV: Fallback Audio is not available")
          : ((function () {
              var b = a.fallback_audio;
              setTimeout(function () {
                b.playbackRate = a.fallback_playbackrate;
              }, 50);
              b.onloadedmetadata = function () {
                b.playbackRate = a.fallback_playbackrate;
              };
              var c = function (e) {
                setTimeout(function () {
                  if (0 == e.currentTime) {
                    a.log(
                      "Audio chunk not playing. Trying to recover. Disabling time estimation"
                    );
                    a.enableEstimationTimeout = !1;
                    a.checkAndCancelTimeout();
                    e.load();
                    var n = function () {
                      e.play();
                      e.removeEventListener("canplaythrough", n);
                    };
                    e.addEventListener("canplaythrough", n, !1);
                  }
                }, 700);
              };
              if (2 <= b.readyState) b.play(), c(b);
              else {
                var d = function () {
                  b.play();
                  b.removeEventListener("canplaythrough", d);
                };
                b.addEventListener("canplaythrough", d, !1);
              }
            })(),
            (a.fallback_audio.onerror = function (b) {
              function c() {
                if (this.readyState == this.DONE && 200 !== this.status)
                  switch (this.status) {
                    case 400:
                      console.error(
                        "ResponsiveVoice audio could not be loaded. Invalid parameters."
                      );
                      break;
                    case 403:
                      console.error(
                        "ResponsiveVoice invalid API key. See https://responsivevoice.org/register?devtools=" +
                          encodeURIComponent(window.location.href)
                      );
                      break;
                    default:
                      console.error(
                        "ResponsiveVoice audio could not be loaded. There is an issue connecting your browser to the API endpoint."
                      );
                  }
              }
              switch (b.target.error.code) {
                case b.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
                  var d = new XMLHttpRequest();
                  d.open("GET", b.target.src, !0);
                  d.send();
                  d.onreadystatechange = c;
                  break;
                default:
                  console.error("ResponsiveVoice: an unknown error occurred.");
              }
            }),
            a.fallback_audio.addEventListener("ended", a.fallback_finishPart),
            a.enableEstimationTimeout &&
              a.useTimer &&
              a.startTimeout(
                a.multipartText[a.fallbackChunkIndex],
                a.fallback_finishPart
              ));
      };
      a.isFallbackAudioPlaying = function () {
        var b;
        for (b = 0; b < a.fallback_audiopool.length; b++) {
          var c = a.fallback_audiopool[b];
          if (!c.paused && !c.ended && c.currentTime != c.duration) return !0;
        }
        return !1;
      };
      a.fallback_finishPart = function (b) {
        a.isFallbackAudioPlaying()
          ? (a.checkAndCancelTimeout(),
            (a.timeoutId = setTimeout(
              a.fallback_finishPart,
              1e3 * (a.fallback_audio.duration - a.fallback_audio.currentTime)
            )))
          : (a.checkAndCancelTimeout(),
            a.fallbackChunkIndex < a.fallbackChunks.length - 1
              ? (a.fallbackChunkIndex++, a.fallback_startPart())
              : a.speech_onend());
      };
      a.cancel = function () {
        a.checkAndCancelTimeout();
        a.fallbackMode
          ? (null != a.fallback_audio && a.fallback_audio.pause(),
            a.clearFallbackPool())
          : ((a.cancelled = !0), speechSynthesis.cancel());
      };
      a.voiceSupport = function () {
        return "speechSynthesis" in window;
      };
      a.OnFinishedPlaying = function (b) {
        if (null != a.msgparameters && null != a.msgparameters.onend)
          a.msgparameters.onend();
      };
      a.setDefaultVoice = function (b) {
        if (a.rvsMapped) {
          var c = a.getResponsiveVoice(b);
          null != c && (a.default_rv = c);
        } else
          setTimeout(function () {
            a.setDefaultVoice(b);
          }, 15);
      };
      a.setDefaultRate = function (b) {
        var c = b;
        b = parseFloat(b);
        isNaN(b)
          ? console.error(
              "[responsiveVoice.setDefaultRate] invalid argument: " +
                c.toString()
            )
          : 0 === b
          ? console.error("[responsiveVoice.setDefaultRate] rate must be > 0")
          : 1.5 < b
          ? console.error(
              "[responsiveVoice.setDefaultRate] rate must be <= 1.5"
            )
          : (z = b);
      };
      a.mapRVs = function () {
        if ("object" == typeof navigator) {
          var b,
            c = "anguage",
            d = navigator;
          var e =
            ((b = d["l" + c + "s"]),
            b && b.length
              ? b
              : (c = d["l" + c] || d["browserL" + c] || d["userL" + c])
              ? [c]
              : c);
        } else e = void 0;
        e = e[0];
        for (b = 0; b < a.responsivevoices.length; b++)
          for (c = a.responsivevoices[b], d = 0; d < c.voiceIDs.length; d++) {
            var n = a.voicecollection[c.voiceIDs[d]];
            if (1 != n.fallbackvoice) {
              var g = a.getSystemVoice(n.name);
              a.forcedFallbackMode && (g = null);
              a.iOS12_0 &&
                c.lang.toLowerCase() != e.toLowerCase() &&
                c.lang.toLowerCase().split("-")[0] != e.toLowerCase() &&
                (g = null);
              if (null != g) {
                c.mappedProfile = { systemvoice: g, collectionvoice: n };
                break;
              }
            } else {
              c.mappedProfile = { systemvoice: {}, collectionvoice: n };
              break;
            }
          }
        a.rvsMapped = !0;
      };
      a.getMatchedVoice = function (b) {
        for (var c = 0; c < b.voiceIDs.length; c++) {
          var d = a.getSystemVoice(a.voicecollection[b.voiceIDs[c]].name);
          if (null != d) return d;
        }
        return null;
      };
      a.getSystemVoice = function (b) {
        var c = String.fromCharCode(160);
        var d = b.replace(new RegExp("\\s+|" + c, "g"), "");
        if ("undefined" === typeof a.systemvoices || null === a.systemvoices)
          return null;
        for (var e = 0; e < a.systemvoices.length; e++)
          if (
            0 === a.systemvoices[e].name.localeCompare(b) ||
            0 ===
              a.systemvoices[e].name
                .replace(new RegExp("\\s+|" + c, "g"), "")
                .replace(/ *\([^)]*\) */g, "")
                .localeCompare(d)
          )
            return a.systemvoices[e];
        return null;
      };
      a.getResponsiveVoice = function (b) {
        for (var c = 0; c < a.responsivevoices.length; c++)
          if (a.responsivevoices[c].name == b)
            return (
              (b = a.fallbackMode),
              (a.fallbackMode =
                !0 ===
                  a.responsivevoices[c].mappedProfile.collectionvoice
                    .fallbackvoice || !0 === a.forcedFallbackMode
                  ? !0
                  : !1),
              b != a.fallbackMode &&
                (a.mapRVs(), a.Dispatch("OnServiceSwitched")),
              a.responsivevoices[c]
            );
        return null;
      };
      a.Dispatch = function (b, c) {
        c = void 0 !== c ? c : null;
        if (
          a.hasOwnProperty(b + "_callbacks") &&
          null != a[b + "_callbacks"] &&
          0 < a[b + "_callbacks"].length
        ) {
          for (var d = a[b + "_callbacks"], e = 0; e < d.length; e++) d[e](c);
          return !0;
        }
        var n = b + "_callbacks_timeout",
          g = b + "_callbacks_timeoutCount";
        a.hasOwnProperty(n) ||
          ((a[g] = 10),
          (a[n] = setInterval(function () {
            --a[g];
            (a.Dispatch(b, c) || 0 > a[g]) && clearTimeout(a[n]);
          }, 50)));
        return !1;
      };
      a.AddEventListener = function (b, c) {
        a.hasOwnProperty(b + "_callbacks") || (a[b + "_callbacks"] = []);
        a[b + "_callbacks"].push(c);
      };
      a.addEventListener = a.AddEventListener;
      a.RemoveEventListener = function (b, c) {
        a[b + "_callbacks"] &&
          -1 != a[b + "_callbacks"].indexOf(c) &&
          a[b + "_callbacks"].splice(a[b + "_callbacks"].indexOf(c), 1);
      };
      a.clickEvent = function () {
        a.log("Click event");
        a.click_event_detected = !0;
        a.initializePermissionsTimeout = setTimeout(a.initializePermissions, 5);
        a.userInteractionEvents.forEach(function (b) {
          window.removeEventListener(b, a.clickEvent, !1);
        });
        a.Dispatch("OnClickEvent");
      };
      a.initializePermissions = function () {
        if (a.iOS && !a.iOS_initialized) {
          a.log("Initializing iOS click event");
          if ("undefined" !== typeof speechSynthesis) {
            var b = new SpeechSynthesisUtterance(" ");
            speechSynthesis.speak(b);
          }
          a.iOS_initialized = !0;
        }
        a.is_android &&
          !a.android_initialized &&
          (a.log("Initializing Android click event"),
          "undefined" !== typeof speechSynthesis &&
            ((b = new SpeechSynthesisUtterance(" ")), speechSynthesis.speak(b)),
          (a.android_initialized = !0));
        a.initFallbackPool();
      };
      a.isPlaying = function () {
        return a.fallbackMode
          ? null != a.fallback_audio &&
              !a.fallback_audio.ended &&
              !a.fallback_audio.paused
          : "undefined" != typeof speechSynthesis
          ? speechSynthesis.speaking
          : !1;
      };
      a.clearFallbackPool = function () {
        for (var b = 0; b < a.fallback_audiopool.length; b++)
          null != a.fallback_audiopool[b] && a.fallback_audiopool[b].pause();
        a.fallback_audiopool_index = 0;
        a.fallbackChunks = [];
      };
      a.initFallbackPool = function () {
        if (!a.fallback_audiopool || 0 == a.fallback_audiopool.length) {
          for (var b = 0; 10 > b; b++) {
            var c = b,
              d = document.createElement("AUDIO");
            d.preload = "auto";
            a.is_android &&
              ((d.src =
                "data:audio/mpeg;base64,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"),
              d.load(),
              9 == c &&
                (a.log("Android HTML audio initialized"),
                (a.android_initialized = !0)));
            a.iOS &&
              ((d.src =
                "data:audio/mpeg;base64,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"),
              d.load(),
              9 == c &&
                (a.log("iOS HTML audio initialized"),
                (a.iOS_initialized = !0)));
            a.fallback_audiopool.push(d);
          }
          a.fallback_audiopool_index = 0;
        }
      };
      a.allowSpeechClicked = function (b) {
        a.allowSpeechDiv.parentNode.removeChild(a.allowSpeechDiv);
        a.allowSpeechDiv = null;
        if ((a.speechAllowedByUser = b))
          a.clickEvent(),
            a.scheduledSpeak &&
              (a.speak(
                a.scheduledSpeak.text,
                a.scheduledSpeak.voicename,
                a.scheduledSpeak.parameters
              ),
              (a.scheduledSpeak = null));
        a.Dispatch("OnAllowSpeechClicked");
      };
      a.checkSpeechAllowed = function (b) {
        if (0 == a.speechAllowedByUser) return !1;
        var c = a.is_android || a.iOS,
          d = a.is_safari && (a.fallbackMode || a.forcedFallbackMode);
        if (
          !0 !== a.disablePermissionPopup &&
          (!0 === a.allowPermissionPopupEverywhere ||
            c ||
            d ||
            !0 === a.speechSynthesisNotAllowedError) &&
          !a.click_event_detected
        ) {
          if (a.allowSpeechDiv) return;
          a.allowSpeechDiv_appearances =
            null == a.allowSpeechDiv_appearances
              ? 1
              : ++a.allowSpeechDiv_appearances;
          if (2 < a.allowSpeechDiv_appearances)
            return (
              console.log("ResponsiveVoice: Speech not allowed by user"), !1
            );
          c = document.createElement("style");
          c.innerHTML =
            '.rvNotification{position:fixed;background-color:#fff;text-align:center;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:400;line-height:1.5;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);z-index:10000;width:100vw;left:0;bottom:0;font-size:1rem;padding-bottom:.5em;padding-right:.5em}.rvButtonRow{padding-right:2em;padding-bottom:1em;text-align:right;font-size:medium}.rvButton{cursor:pointer;display:inline-block;margin-left:1em;padding:.8em 2em;border-radius:3px;font-size:small}.rvButtonAllow{border:none;background-color:#2b8cff;color:#fff}.rvButtonDeny{border:1px solid #2b8cff;color:#2b8cff;background-color:#fff}.rvTextRow{padding-top:1em;padding-bottom:2em}@media (min-width:576px){.rvNotification{width:60vw;left:20vw}}@media (min-width:768px){.rvNotification{width:50vw;left:25vw}}@media (min-width:992px){.rvNotification{width:40vw;left:30vw}}@media (min-width:1200px){.rvNotification{width:30vw;left:35vw}}';
          document.body.appendChild(c);
          a.allowSpeechDiv = document.createElement("div");
          a.allowSpeechDiv.classList.add("rvNotification");
          void 0 == b && (b = {});
          a.allowSpeechDiv.innerHTML =
            '<div class="rvTextRow"><strong>' +
            (void 0 != b.urlOverride
              ? b.urlOverride
              : window.location.hostname) +
            "</strong> " +
            (void 0 != b.textOverride
              ? b.textOverride
              : "wants to play speech") +
            '</div><div class="rvButtonRow"><div onclick="responsiveVoice.allowSpeechClicked(false);" class="rvButton rvButtonDeny">DENY</div><div onclick="responsiveVoice.allowSpeechClicked(true);" class="rvButton rvButtonAllow">ALLOW</div></div>';
          document.body.appendChild(a.allowSpeechDiv);
          return !1;
        }
        return !0;
      };
      a.fallback_audioPool_getAudio = function () {
        a.initFallbackPool();
        a.fallback_audiopool_index >= a.fallback_audiopool.length &&
          (a.fallback_audiopool_index = 0);
        return a.fallback_audiopool[a.fallback_audiopool_index++];
      };
      a.fallback_updateChunksBuffer = function () {
        for (
          var b = a.fallbackChunkIndex;
          b <
          Math.min(
            a.fallbackChunks.length,
            a.fallbackChunkIndex + a.fallbackBufferLength
          );
          b++
        ) {
          var c = a.fallbackChunks[b];
          null == c.audio &&
            ((c.audio = a.fallback_audioPool_getAudio()),
            (function (d) {
              var e = function () {
                d.audio.src = d.url;
                d.audio.playbackRate = a.fallback_playbackrate;
                d.audio.preload = "auto";
                d.audio.load();
              };
              0 == b ? e() : setTimeout(e, 50 * b);
            })(c));
        }
      };
      a.selectBest = function (b) {
        for (var c = 0; c < b.length; c++) if (null != b[c]) return b[c];
        return null;
      };
      a.pause = function () {
        a.fallbackMode
          ? null != a.fallback_audio && a.fallback_audio.pause()
          : (speechSynthesis.pause(),
            (a.ttsCancelledByTimeout = !1),
            (a.ttsKeepAliveTimeout = setTimeout(function () {
              a.ttsKeepAliveTimeout = null;
              speechSynthesis.cancel();
              a.ttsCancelledByTimeout = !0;
            }, 6e4)));
      };
      a.resume = function () {
        if (a.fallbackMode) null != a.fallback_audio && a.fallback_audio.play();
        else if (a.ttsCancelledByTimeout)
          for (
            var b = (a.ttsCancelledByTimeout = !1), c = 0;
            c < a.utterances.length;
            c++
          ) {
            var d = a.utterances[c];
            a.currentMsg == d && (b = !0);
            b && a.tts_speak(d);
          }
        else
          a.ttsKeepAliveTimeout &&
            (clearTimeout(a.ttsKeepAliveTimeout),
            (a.ttsKeepAliveTimeout = null)),
            speechSynthesis.resume();
      };
      a.tts_speak = function (b) {
        setTimeout(function () {
          a.cancelled = !1;
          a.analytics.characterCount += b.text.toString().length;
          speechSynthesis.speak(b);
        }, 0.01);
      };
      a.setVolume = function (b) {
        if (a.isPlaying())
          if (a.fallbackMode) {
            for (var c = 0; c < a.fallback_audiopool.length; c++)
              a.fallback_audiopool[c].volume = b;
            a.fallback_audio.volume = b;
          } else
            for (c = 0; c < a.utterances.length; c++)
              a.utterances[c].volume = b;
      };
      a.onPartEnd = function (b) {
        if (null != a.msgparameters && null != a.msgparameters.onchuckend)
          a.msgparameters.onchuckend();
        a.Dispatch("OnPartEnd");
        b = a.utterances.indexOf(b.utterance);
        a.currentMsg = a.utterances[b + 1];
      };
      a.onboundary = function (b) {
        a.log("On Boundary");
        a.iOS && !a.onstartFired && a.speech_onstart();
      };
      a.numToWords = function (b) {
        var c = (function () {
            return function (x, t) {
              if (Array.isArray(x)) return x;
              if (Symbol.iterator in Object(x)) {
                var y = [],
                  v = !0,
                  C = !1,
                  H = void 0;
                try {
                  for (
                    var D = x[Symbol.iterator](), E;
                    !(v = (E = D.next()).done) &&
                    (y.push(E.value), !t || y.length !== t);
                    v = !0
                  );
                } catch (I) {
                  (C = !0), (H = I);
                } finally {
                  try {
                    if (!v && D["return"]) D["return"]();
                  } finally {
                    if (C) throw H;
                  }
                }
                return y;
              }
              throw new TypeError(
                "Invalid attempt to destructure non-iterable instance"
              );
            };
          })(),
          d = function (x) {
            return 0 === x.length;
          },
          e = function (x) {
            return function (t) {
              return t.slice(0, x);
            };
          },
          n = function (x) {
            return function (t) {
              return t.slice(x);
            };
          },
          g = function (x) {
            return x.slice(0).reverse();
          },
          h = function (x) {
            return function (t) {
              return function (y) {
                return x(t(y));
              };
            };
          },
          r = function (x) {
            return !x;
          },
          p = function y(t) {
            return function (v) {
              if (d(v)) var C = [];
              else {
                C = [e(t)(v)];
                var H = C.concat;
                v = y(t)(n(t)(v));
                if (Array.isArray(v)) {
                  for (var D = 0, E = Array(v.length); D < v.length; D++)
                    E[D] = v[D];
                  v = E;
                } else v = Array.from(v);
                C = H.call(C, v);
              }
              return C;
            };
          },
          u =
            " one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen".split(
              " "
            ),
          A = "  twenty thirty forty fifty sixty seventy eighty ninety".split(
            " "
          ),
          G =
            " thousand million billion trillion quadrillion quintillion sextillion septillion octillion nonillion".split(
              " "
            ),
          B = function (t) {
            var y = c(t, 3);
            t = y[0];
            var v = y[1];
            y = y[2];
            return [
              0 === (Number(y) || 0) ? "" : u[y] + " hundred ",
              0 === (Number(t) || 0) ? A[v] : (A[v] && A[v] + " ") || "",
              u[v + t] || u[t],
            ].join("");
          },
          F = function (t, y) {
            return "" === t ? t : t + " " + G[y];
          };
        return "number" === typeof b
          ? a.numToWords(String(b))
          : "0" === b
          ? "zero"
          : h(p(3))(g)(Array.from(b))
              .map(B)
              .map(F)
              .filter(h(r)(d))
              .reverse()
              .join(" ")
              .trim();
      };
      a.getWords = function (b) {
        b = b.replace(
          /$|\u00a5|\u20a1|\u20ac|\u00a3|\u20aa|\u20b9|\uffe5|\u17db|\u20a9|\u20a6|\u0e3f|\u20b4|\u20ab/gi,
          " dummy currency "
        );
        var c = b.split(/(\s*[\s,]\s*|\?|;|:|\.|\(|\)|!)/);
        c = c.filter(function (e) {
          return /[^\s]/.test(e);
        });
        for (var d = 0; d < c.length; d++)
          null != (b = c[d].toString().match(/\d+/)) &&
            (c.splice(d, 1),
            a
              .numToWords(+b[0])
              .split(/\s+/)
              .map(function (e) {
                c.push(e);
              }));
        return c;
      };
      a.getEstimatedTimeLength = function (b, c) {
        var d = a.getWords(b),
          e = 0,
          n = a.fallbackMode ? 1300 : 700;
        c = c || 1;
        d.map(function (r, p) {
          e += (r.toString().match(/[^ ]/gim) || r).length;
        });
        var g = d.length,
          h = (60 / a.WORDS_PER_MINUTE) * c * 1e3 * g;
        5 > g && (h = c * (n + 50 * e));
        a.log(
          "Estimated time length: " +
            h +
            " ms, words: [" +
            d +
            "], charsCount: " +
            e
        );
        return h;
      };
      a.validateParameters = function (b, c) {
        if ("undefined" === typeof b[c]) return b[c];
        switch (c) {
          case "rate":
          case "pitch":
          case "volume":
            var d = Number(b[c]);
            isNaN(d) &&
              console.warn(
                "ResponsiveVoice: the parameter " +
                  c +
                  ' has a wrong value "' +
                  b[c] +
                  '". Defaults were used.'
              );
            b[c] = isNaN(d) ? "1" : b[c];
        }
        return b[c];
      };
      a.services = { NATIVE_TTS: 0, FALLBACK_AUDIO: 1 };
      a.servicesPriority = [0, 1];
      a.servicesEnabled = [];
      a.setServiceEnabled = function (b, c) {
        a.servicesEnabled[b] = c;
      };
      a.getServiceEnabled = function (b) {
        return a.servicesEnabled[b] || !1;
      };
      a.setServiceEnabled(a.services.NATIVE_TTS, !0);
      a.setServiceEnabled(a.services.FALLBACK_AUDIO, !0);
      a.forceFallbackMode = function (b) {
        a.forcedFallbackMode = b;
        a.fallbackMode = b;
        a.mapRVs();
        a.Dispatch("OnServiceSwitched");
      };
      a.enableWindowClickHook = function () {
        a.userInteractionEvents.forEach(function (b) {
          window.addEventListener(b, a.clickEvent, !1);
        });
      };
      a.setTextReplacements = function (b) {
        if (null == b) q = null;
        else {
          q = [];
          for (var c = 0; c < b.length; c++) {
            var d = b[c],
              e = d.searchvalue;
            if ("string" == typeof e)
              try {
                var n = e.match(RegExp("^/(.*?)/([gimy]*)$")),
                  g = new RegExp(n[1], n[2]);
                g instanceof RegExp && (e = g);
              } catch (h) {
                e = new RegExp(e, "g");
              }
            q.push({
              searchvalue: e,
              newvalue: d.newvalue,
              collectionvoices: d.collectionvoices,
              systemvoices: d.systemvoices,
            });
          }
        }
      };
      var w =
        /(code\.responsivevoice\.org|local-lb).*?responsivevoice(\.\w+)?\.js/gi;
      "interactive" === document.readyState
        ? a.init()
        : document.addEventListener("DOMContentLoaded", function () {
            a.init();
          });
      window.addEventListener("beforeunload", function () {
        if (rvApiKey && a.analytics.characterCount) {
          var b = new FormData();
          b.append("key", rvApiKey);
          b.append("count", a.analytics.characterCount);
          navigator.sendBeacon(
            "https://app.responsivevoice.org/analytics/cc/session",
            b
          ) && (a.analytics.characterCount = 0);
        }
      });
    },
    responsiveVoice = new ResponsiveVoice();
